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

Vin*_*nod 44 sql-server sql-server-2005

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

Ada*_*lph 86

ALTER TABLE tablename
ALTER COLUMN columnname datatype NOT NULL
Run Code Online (Sandbox Code Playgroud)

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

例如

ALTER TABLE orders
ALTER COLUMN customer_id INT NOT NULL
Run Code Online (Sandbox Code Playgroud)

  • 请注意,必须将"datatype"替换为实际的列数据类型,因此它可能如下所示:ALTER TABLE customers ALTER COLUMN address_id INT NOT NULL (3认同)

Ric*_*son 11

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

UPDATE tablename 
SET    fieldname = Newid() 
WHERE  fieldname IS NULL; 
Run Code Online (Sandbox Code Playgroud)

然后正如亚当拉尔夫所说

ALTER TABLE tablename ALTER COLUMN fieldname datatype NOT NULL 
Run Code Online (Sandbox Code Playgroud)