ALTER
语句向现有列添加默认值的正确语法是什么?
我可以添加没有错误的新列:
ALTER TABLE tb_TableName ADD Record_Status varchar(20)
但是如果我尝试使用以下语句更改现有列以应用默认值:
ALTER TABLE tb_TableName
ALTER COLUMN Record_Status VARCHAR(20) NOT NULL DEFAULT ''
或
ALTER TABLE tb_TableName
ALTER Record_Status VARCHAR(20) NOT NULL DEFAULT ''
我收到错误:
'Record_Status'附近的语法不正确。
答案 0 :(得分:37)
我想你想要这种语法:
ALTER TABLE tb_TableName
add constraint cnt_Record_Status Default '' for Record_Status
根据您的一些评论,我猜您的表中可能已经有null
个值,这导致列not null
的更改失败。如果是这种情况,那么您应首先运行UPDATE
。你的脚本将是:
update tb_TableName
set Record_Status = ''
where Record_Status is null
ALTER TABLE tb_TableName
ALTER COLUMN Record_Status VARCHAR(20) NOT NULL
ALTER TABLE tb_TableName
ADD CONSTRAINT DEF_Name DEFAULT '' FOR Record_Status
答案 1 :(得分:5)
试试这个。
ALTER TABLE tb_TableName
ALTER COLUMN Record_Status VARCHAR(20) NOT NULL
ALTER TABLE tb_TableName
ADD CONSTRAINT DEF_Name DEFAULT '' FOR Record_Status
答案 2 :(得分:0)
要为列设置默认值,请尝试以下操作:
ALTER TABLE tb_TableName
ALTER COLUMN Record_Status SET DEFAULT 'default value'