Sql server 使用默认值使列不为NULL

Sql server 使用默认值使列不为NULL,sql-server,Sql Server,是否有一行查询用于将可空列更改为不可空列,并为空记录应用默认值。可能是 ALTER TABLE myTable ALTER COLUMN myColumn INT NOT NULL WITH VALUES 如果它不存在,那么原因是什么,因为我们可以将与值一起使用与添加列一起使用。如果您添加默认值,那么很明显该列不能为空(除非您显式添加它)。因此,明确地添加它是没有意义的。你可以简单地像这样做 ALTER TABLE myTable ADD CONSTRAINT DF_SomeName DEFA

是否有一行查询用于将可空列更改为不可空列,并为空记录应用默认值。可能是

ALTER TABLE myTable ALTER COLUMN myColumn INT NOT NULL WITH VALUES

如果它不存在,那么原因是什么,因为我们可以将
与值一起使用
添加
列一起使用。

如果您添加默认值,那么很明显该列不能为空(除非您显式添加它)。因此,明确地添加它是没有意义的。你可以简单地像这样做

ALTER TABLE myTable ADD CONSTRAINT DF_SomeName DEFAULT 0 FOR myColumn 
如果您的列当前允许空值,并且您正试图使其不为空,那么这意味着您正试图像这样更改该列的约束

ALTER TABLE myTable ALTER COLUMN myColumn INT NOT NULL

现在,您的列需要一个值,不能为NULL。

我已经为该列设置了默认值,但我很想知道是否有默认值liner@Anonymous:-我已经更新了我的答案。很明显,如果您的列具有默认值,那么它不能为NULL,那么为什么要显式添加它。如果有人显式尝试插入NULL,那么?@Anonymous:-那么您需要在执行此操作时将列更改为非NULL。我不认为有一个班轮这样做,如果你正在寻找。