我正在创建一个这样的数据库列:
Alter table tablename
add column columnname null
add constraint df_columnname default 0
执行上述 SQL 后,新列将添加到具有空值的表中。
这里没有constraint df_cloumnname
意义吗?
请澄清这一点..
我正在创建一个这样的数据库列:
Alter table tablename
add column columnname null
add constraint df_columnname default 0
执行上述 SQL 后,新列将添加到具有空值的表中。
这里没有constraint df_cloumnname
意义吗?
请澄清这一点..
如果您的列是nullable,那么使用默认约束添加它没有影响 - 它可以为 null,并且将保持为 null。在DEFAULT CONSTRAINT
这种情况下,仅适用于正在添加的新行(并且未明确指定列的值)。
如果您的列不是 NULL,则将立即应用默认约束。
如果您使用的是SQL Server(您没有足够清楚地指定 -SQL
是查询语言- 但不是数据库产品......),并且您想要一个具有默认约束的可空列,并且您希望将值应用于现有行,请使用以下语法:
ALTER TABLE dbo.tablename
ADD columnname NULL
CONSTRAINT df_columnname DEFAULT 0 WITH VALUES
添加WITH VALUES
到你的命令,你应该得到想要的结果。