将 MS SQL 表中现有的列设置为 NOT NULL

48

如何将 MS SQL 表的现有列设置为 NOT NULL?


您可能还想为该列添加默认约束。 - Charles Graham
2个回答

90
ALTER TABLE tablename
ALTER COLUMN columnname datatype NOT NULL
你显然需要确保在执行此操作之前,该列不包含任何 NULL 值。
例如:
ALTER TABLE orders
ALTER COLUMN customer_id INT NOT NULL

3
请注意,你需要将 "datatype" 替换为实际的列数据类型,因此它可能看起来像这样: ALTER TABLE customers ALTER COLUMN address_id INT NOT NULL - John Zumbrum
@JohnZumbrum 感谢您的评论。我已编辑答案并展示了一个例子。 - Adam Ralph

12

首先确保字段具有非空值。在这种情况下,我正在处理一个具有 GUID nvarchar 的字段,所以我会执行以下操作:

首先确保字段具有非空值。在这种情况下,我正在处理一个具有GUID nvarchar的字段,因此我将执行以下操作:

UPDATE tablename 
SET    fieldname = Newid() 
WHERE  fieldname IS NULL; 

那么就像Adam Ralph所说的那样

ALTER TABLE tablename ALTER COLUMN fieldname datatype NOT NULL 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接