2010-10-27 61 views
1

哪个更好,有没有什么性能差异?将datetime列的默认值设置为getdate()或将getdate()与insert t-sql脚本一起使用。列默认值还是包含在插入脚本中?

+0

为什么你要求在这种特殊情况下的表现? 理论上,如果你的client-concept允许直接使用insert-statements,那么默认值不能从客户端传送到服务器。 – Ice 2010-10-31 19:16:45

回答

1

如果您绝对肯定必须有一个默认日期,无论应用程序或用户输入记录,然后使用列默认值。即使有一段时间用户应该更加关注这个日期,你可以在前端需要它。

我想,如果你打算花尽可能多的时间设计,测试和调试代码,谁在SQL Server中写道列默认值码的开发者,是我的客人;)

1

这一切都取决于你'将使用该DateTime列。如果这是“插入日期”或“上次修改日期”列,请使用列默认值。

DateTime列是SQL编程人员和客户端应用程序开发人员之间混淆/争执/争吵的源头 - 如果您的应用程序支持多个区域设置,则尤其如此。就使用默认值而言,您不必担心客户端开发人员获取日期格式是否正确(或者将用户的语言环境转换为SQL Server默认语言环境)。作为一般规则,当我指定一个列为“NOT NULL”时,我将提供一个默认值,或者在文档中写出“期望的错误”。默认值可节省开发时间,让您的生活更轻松。

并且不,没有任何性能问题。

1

设置列的默认值。 DBA或开发人员总是有可能编写一个绕过插入脚本的插入语句,并且即使在这种情况下也要确保设置值。