具有默认约束的数据库列

Sai*_*ash 4 sql sql-server

我正在创建一个这样的数据库列:

Alter table tablename
add column columnname null
add constraint df_columnname default 0
Run Code Online (Sandbox Code Playgroud)

执行上述SQL后,新列将添加到具有空值的表中.

请问constraint df_cloumnname有没有意义吗?

请澄清一下..

mar*_*c_s 9

如果您的列可以为,那么使用默认约束添加它不会产生任何影响 - 它可以为null,并且将保持为null.在DEFAULT CONSTRAINT这种情况下仅适用于新行正在增加(而没有明确指定您的列的值).

如果您的列是非NULL,则会立即应用默认约束.

如果您正在使用SQL Server(您没有明确指定 - SQL查询语言 - 但不是数据库产品......),并且您希望具有默认约束的可空列,并且您希望将值应用于现有行,使用以下语法:

ALTER TABLE dbo.tablename
ADD columnname NULL
  CONSTRAINT df_columnname DEFAULT 0 WITH VALUES
Run Code Online (Sandbox Code Playgroud)

添加WITH VALUES到您的命令,您应该得到所需的结果.