是否有理由在可空列上指定DEFAULT(NULL)?

use*_*316 17 t-sql sql-server

我有一个像这样创建的表:

CREATE TABLE dbo.XX (
YY int DEFAULT(NULL)
)
Run Code Online (Sandbox Code Playgroud)

如果执行此操作,然后稍后对表进行编写脚本,则将获得以下代码以及随机命名的默认约束:

CREATE TABLE [dbo].XX([YY] [int] NULL) 
GO
ALTER TABLE [dbo].XX ADD  DEFAULT (NULL) FOR [YY]
GO
Run Code Online (Sandbox Code Playgroud)

现在,DEFAULT (NULL)在列上指定而不是仅仅将其保留[YY] [int] NULL在第一位是否有任何实际意义?

Ode*_*ded 18

无需添加DEFAULT(NULL)可空列.

如果未向这些列提供数据,则它们将具有NULL.

我看到的唯一好处是Larry Lustig在他对这个问题的评论中发布的一个好处- 它记录了你没有忘记在可空列中添加默认值的事实.


Mar*_*ith 6

没有我能想到的.

INSERT INTO [dbo].XX([YY])  VALUES (DEFAULT)

INSERT INTO [dbo].XX([YY])  DEFAULT VALUES 
Run Code Online (Sandbox Code Playgroud)

两种方式都一样.