我正在嘗試在同一個alter命令中對DB2中的列進行2個更改,並且它似乎不喜歡我的語法。有沒有辦法做到這一點?如果是這樣,怎麼樣?在DB2 LUW上更改數據類型和默認值10.5
create table tbl(col varchar(10))
以下作品,使用2- ALTER語句:
alter table tbl
alter column col set data type varchar(128)
alter table tbl
alter column col set default current user
以下嘗試失敗:
alter table tbl
alter column col set data type varchar(128) set default current user
意外的標記 「設置數據類型爲varchar(128)」 被找到以下 「TBL改欄列」。預期標記可能包括: 「」 .. SQLCODE = -104,SQLSTATE = 42601,DRIVER = 3.67.28
alter table tbl
alter column col set data type varchar(128) with default current user
意外的標記 「的數據類型爲varchar(128)」 之後發現 「改變列col set」。預期標記可能包括: 「」 .. SQLCODE = -104,SQLSTATE = 42601,DRIVER = 3.67.28
alter table tbl
alter column col set data type varchar(128)
alter column col set default current user
「COL」 是重複的名稱.. SQLCODE = -612,SQLSTATE = 42711, DRIVER = 3.67.28
您不能在同一個語句中兩次更改同一列 - 這正是SQLCODE -612告訴您的。您的其他嘗試在語法上不正確。 – mustaccio
按照http://www-01.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.messages.sql.doc/doc/msql00612n.html只能在列名中引用列名一個ADD,DROP COLUMN或ALTER COLUMN子句在一個ALTER TABLE語句中。 – GeekyDaddy
@GeekyDaddy似乎回答了這個問題;爲什麼不把它列爲答案? –