给定tsql
insert into Tasks
select null as userid, 'Test Task 100' as Name, '' as Description, null as DateStarted, null as DateCompleted, null as DateModified
DateStarted字段具有(getDate(((的默认值,但是当我执行前一个TSQL时,它仍然为null。有任何想法吗?
如果省略了列名,则服务器将使用默认值。
如果您必须提供列名,例如来自ORM或其他任何内容,则可以使用关键字
默认
参考:插入(Transact-SQL(
默认 对于列。如果列不存在默认值 列允许null值,插入空值。用于定义的列 时间戳数据类型,下一个时间戳值将插入。默认 对于身份列无效。
第一个语句将允许服务器使用默认值(通过省略Datestartarted列(。顺便说一句,您应该标准化列名称的情况,理想情况下,请停止使用保留单词作为列名称。维护人员会看到"用户ID"," [name]"等随机组合。
INSERT INTO
Tasks
(
userid,
, [Name]
, [Description]
, DateCompleted
, DateModified
)
VALUES
(
NULL --userid
, 'Test Task 100' --[Name]
, '' --[Description]
, NULL --DateCompleted
, NULL --DateModified
)
下一个语句将采用DEFAULT
关键字,如果您要明确或出于某种原因需要包含列的框架。
INSERT INTO
Tasks
(
userid,
, [Name]
, [Description]
, DateStarted
, DateCompleted
, DateModified
)
VALUES
(
NULL --userid
, 'Test Task 100' --[Name]
, '' --[Description]
, DEFAULT --DateStarted
, NULL --DateCompleted
, NULL --DateModified
)