哪个更好,有没有性能差异?将datetime列的默认值设置为getdate()或使用带有insert t-sql脚本的getdate()。
答案 0 :(得分:1)
如果您绝对必须拥有默认日期,无论应用程序或用户输入记录,请使用列默认值。即使有时候用户应该更加关注这个日期,你也可以在前端要求它。
我想如果您计划花费尽可能多的时间来设计,测试和调试代码,那么在SQL Server中编写列默认值代码的开发人员就是我的访客;)
答案 1 :(得分:1)
这取决于您使用DateTime列的内容。如果这是“插入日期”或“上次修改日期”列,请使用列默认值。
DateTime列是SQL编码器和客户端应用程序开发人员之间的许多混乱/麻烦/争斗的来源 - 如果您的应用程序将支持多个区域设置,则尤其如此。在使用默认值的情况下,您不必担心客户端开发人员获取日期格式正确(或从用户的语言环境转换为SQL Server默认语言环境)。
作为一般规则,当我将列指定为“NOT NULL”时,我将提供默认值,或在文档中写出“预期错误”。默认值可节省开发时间,让您的生活更轻松。
不,不管怎样都没有性能问题。
答案 2 :(得分:1)
设置列默认值。 DBA或开发人员总是有可能编写一个绕过您的插入脚本的插入语句,并且您希望确保即使在这些情况下也设置了该值。