可能有人给我时,我应该使用一些指导WITH (NOLOCK)
,而不是SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
每个的优点/缺点是什么?是否有任何意外的后果,你使用一个而不是另一个?
今天我遇到了一个旧表,其中一个名为"Created"的日期时间列允许空值.现在,我想要更改它,使其为NOT NULL,并且还包含一个约束以添加默认值(getdate()).
到目前为止,我已经得到了以下脚本,只要我事先清理了所有空值,它就可以正常工作:
ALTER TABLE dbo.MyTable ALTER COLUMN Created DATETIME NOT NULL
Run Code Online (Sandbox Code Playgroud)
有没有办法在ALTER语句中同时指定默认值?
有人可以让我快速概述使用以下两个陈述的利弊:
TRUNCATE TABLE dbo.MyTable
Run Code Online (Sandbox Code Playgroud)
VS
DELETE FROM dbo.MyTable
Run Code Online (Sandbox Code Playgroud)
看来和完成所有事情似乎他们都做了同样的事情; 但这两者之间是否存在差异?
我想知道是否有人找到了一个很好的解决方案:
在我们的单元测试中; 我们通常Assert.AreEqual()
用来验证我们的结果.一切都很好; 直到我们开始尝试在DateTime属性上使用它.
尽管时间非常相似,但有时它们会以毫秒为单位,这会导致测试失败.在我们的申请中; 只要它们准确到第二; 这对我们来说已经足够了.
在这种情况下,有没有人找到以某种方式实施公差的好方法?通常我们的解决方法是将其拆分为两个单独的语句; 一个检查.ToShortDateString()
,另一个检查.ToShortTimeString()
,但在我看来这看起来很草率.
快速提问; 我最近升级到VS2010,并获得了新版本的ReSharper.
现在,当ReSharper给我一个变量的自动完成选项时,它给了我< variableName > 的选项:
什么:代表什么?
例如; 我有这个:
var productIds = new List<int>(inventoryItemsToProcess.Keys);
Run Code Online (Sandbox Code Playgroud)
当我开始输入这样的一行时:
var lastOrderDates = GetProductLastOrderDates(pro
Run Code Online (Sandbox Code Playgroud)
它给我的选项productIds
,以及productIds:
这两者有什么区别?
可能重复:
十进制类型的声明后缀
嘿大家,
在下面的代码片段中; RewardValue是小数:
dto.RewardValue = 1.5;
Run Code Online (Sandbox Code Playgroud)
现在,这给了我以下错误:
"无法将源类型double转换为目标类型decimal"
有意义,并且可以通过将代码行更改为以下内容来轻松修复:
dto.RewardValue = 1.5m;
Run Code Online (Sandbox Code Playgroud)
现在,"m"将其转换为小数,一切都很好.
有人知道我能在哪里找到所有那些"m"型操作符的列表吗?(如果你能让我知道那些适当的术语是什么,我们将不胜感激)
编辑: 感谢HCL和MartyIX让我知道这些被称为"后缀"
每个人的快速问题:
在将font-size设置为以下值时,是否有人知道实际的点大小:
我有这个非常基本的表结构:
dbo.tblCategory
dbo.tblQuestion(与tblCategory的
多对一关系)
dbo.tblAnswer(与tblQuestion的
多对一关系)
基本上,我正在尝试做的是当我加载一个类别时,我想加载所有问题和所有答案.
现在,我已经能够使用以下代码执行此操作:
public tblCategory Retrieve(int id)
{
using (var entities = Context)
{
var dto =
(from t in entities.tblCategory.Include("tblQuestion")
.Include("tblQuestion.tblAnswers")
where t.Id == id
select t).FirstOrDefault();
return entities.DetachObjectGraph(dto);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我并不完全迷恋于此; 如果关系名称在我的模型中发生变化; 构建项目时我不会遇到错误.理想情况下,我想使用lambda表达式; 这样的事情:
public tblCategory Retrieve(int id)
{
using (var entities = Context)
{
var dto =
(from t in entities.tblCategory.Include(t => t.tblQuestion)
where t.Id == id
select t).FirstOrDefault();
return entities.DetachObjectGraph(dto);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,使用上面的代码片段; 我坚持如何深入到Answers表.关于我可以用于这个lambda表达式的任何想法?
有人知道我可以找到这些东西的链接吗?我正在制定一项提案,从几个表中删除一大堆未使用的列,如果我能找出使用的磁盘空间量,那将真正帮助我。
例如,如果我有一个包含 550 万行的表,如果删除 BIT/INT32/DECIMAL (18,2) 列,我会节省多少空间?
这是 SQL Server 2008。
再次感谢!
我有一个如下的架构:
数据(处理我们的实体框架的类库)
组件(引用数据库的中间层类库)
WebOffice(引用组件库的Web应用程序,但不是数据库)
现在,我有以下代码片段(它存在于我们的Components.Payment.cs中;并且tblPayment包含在我们的数据库中.):
public static Payment Retrieve(int id)
{
var t = repository.Retrieve(id);
//the above line returns a tblPayment object
if (t != null)
return new Payment(t);
return null;
}
public static Payment Retrieve(tblPayment tblPayment)
{
return new Payment(tblPayment);
}
Run Code Online (Sandbox Code Playgroud)
我添加之后; WebOffice项目给出以下错误:
errorCS0012:类型'Data.Model.tblPayment'在未引用的程序集中定义.您必须添加对程序集'Data,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 749b8697f3214861'的引用.
现在,这对我来说没有多大意义,因为WebOffice项目根本没有调用Retrieve(tblPayment tblPayment)方法.(那只在组件库中使用)
有什么理由要求数据参考?我是否需要引用引用库引用的每个库?(试着快说5次......)
c# ×5
.net-3.5 ×3
sql-server ×3
sql ×2
.net-4.0 ×1
alter-column ×1
alter-table ×1
assemblies ×1
css ×1
diskspace ×1
font-size ×1
html ×1
include ×1
numeric ×1
nunit ×1
reference ×1
sql-delete ×1
syntax ×1
t-sql ×1
truncate ×1