创建不可为空的列,但使用某个给定值填充现有NULL

时间:2011-04-13 12:16:26

标签: sql sql-server-2005 tsql sql-server-2008

我想在表PerformanceData中添加一个新列“CreatedBy”。我希望这个新列是不可空的,我希望现有的NULL填充为“NA”。这就是我现在这样做的方式。我们有更好的方法吗?

ALTER TABLE PerformanceData ADD CreatedBy VARCHAR(50) NOT NULL 
CONSTRAINT DF1 DEFAULT('NA')   

ALTER TABLE PerformanceData DROP CONSTRAINT DF1

我创建了一个DEFAULT约束并稍后删除它,因为我不希望将来默认插入值。

2 个答案:

答案 0 :(得分:4)

对我来说很好看。如果您想要其他方式,可以分三步完成:

ALTER TABLE PerformanceData ADD CreatedBy VARCHAR(50) NULL 

UPDATE PerformanceData SET CreatedBy = 'NA'

ALTER TABLE PerformanceData ALTER COLUMN CreatedBy VARCHAR(50) NOT NULL

答案 1 :(得分:1)

我会按照默认约束的两个步骤按照你的方式进行。