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

时间:2009-02-11 09:27:31

标签: sql-server sql-server-2005

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

2 个答案:

答案 0 :(得分:84)

ALTER TABLE tablename
ALTER COLUMN columnname datatype NOT NULL

在执行此操作之前,您显然必须确保该列不包含任何NULL值。

E.g。

ALTER TABLE orders
ALTER COLUMN customer_id INT NOT NULL

答案 1 :(得分:11)

首先确保字段具有非空值。在这种情况下,我正在使用具有GUID nvarchar的字段,所以我将

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

然后正如Adam Ralph所说

ALTER TABLE tablename ALTER COLUMN fieldname datatype NOT NULL