列默认值或包含在插入脚本中?

时间:2010-10-27 12:40:00

标签: sql sql-server tsql

哪个更好,有没有性能差异?将datetime列的默认值设置为getdate()或使用带有insert t-sql脚本的getdate()。

3 个答案:

答案 0 :(得分:1)

如果您绝对必须拥有默认日期,无论应用程序或用户输入记录,请使用列默认值。即使有时候用户应该更加关注这个日期,你也可以在前端要求它。

我想如果您计划花费尽可能多的时间来设计,测试和调试代码,那么在SQL Server中编写列默认值代码的开发人员就是我的访客;)

答案 1 :(得分:1)

这取决于您使用DateTime列的内容。如果这是“插入日期”或“上次修改日期”列,请使用列默认值。

DateTime列是SQL编码器和客户端应用程序开发人员之间的许多混乱/麻烦/争斗的来源 - 如果您的应用程序将支持多个区域设置,则尤其如此。在使用默认值的情况下,您不必担心客户端开发人员获取日期格式正确(或从用户的语言环境转换为SQL Server默认语言环境)。

作为一般规则,当我将列指定为“NOT NULL”时,我将提供默认值,或在文档中写出“预期错误”。默认值可节省开发时间,让您的生活更轻松。

不,不管怎样都没有性能问题。

答案 2 :(得分:1)

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