簡體   English   中英

更改SQL Server中的列

[英]Alter column in SQL Server

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'附近的語法不正確。

我想你想要這個語法:

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

請參閱SQL Fiddle with demo

試試這個吧。

ALTER TABLE tb_TableName
ALTER COLUMN Record_Status VARCHAR(20) NOT NULL

ALTER TABLE tb_TableName
ADD CONSTRAINT DEF_Name DEFAULT '' FOR Record_Status

要為列設置默認值,請嘗試以下操作:

ALTER TABLE tb_TableName
ALTER COLUMN Record_Status SET DEFAULT 'default value'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM