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

Sql 列默认值或是否包含在插入脚本中?,sql,sql-server,tsql,Sql,Sql Server,Tsql,哪一个更好,性能有差异吗?将datetime列的默认值设置为getdate(),或将getdate()与insert t-sql脚本一起使用。如果无论哪个应用程序或用户正在输入记录,都绝对必须有默认日期,则使用列默认值。即使有一段时间用户应该更加注意这个日期,您也可以在前端要求它 我想,如果您计划花费与在SQL Server中编写默认值列代码的开发人员一样多的时间来设计、测试和调试代码,那就请便吧;) 这取决于您使用DateTime列的目的。如果这是“插入日期”或“上次修改日期”列,请使用默认列

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

如果无论哪个应用程序或用户正在输入记录,都绝对必须有默认日期,则使用列默认值。即使有一段时间用户应该更加注意这个日期,您也可以在前端要求它


我想,如果您计划花费与在SQL Server中编写默认值列代码的开发人员一样多的时间来设计、测试和调试代码,那就请便吧;)

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

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

一般来说,当我将一列指定为“NOTNULL”时,我要么提供一个默认值,要么在文档中写入一个“预期错误”。默认值可以节省开发时间,让您的生活更轻松


不,两种方式都没有性能问题。

设置列的默认值。DBA或开发人员总是有可能编写一条insert语句,绕过您的insert脚本,您需要确保即使在这些情况下也设置了该值。

为什么在这种特殊情况下要求性能?从理论上讲,如果您的客户端概念允许直接使用insert语句,则默认值不能从客户端传输到服务器。。。。