我试图在同一个alter命令中对DB2中的列进行2次更改,但它似乎不喜欢我的语法。有没有办法做到这一点?如果是这样,怎么样?
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
发现了意外的令牌“set data type varchar(128)” “TBL改变列col”。预期的代币可能包括:“”.. 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)” “alter column 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
答案 0 :(得分:0)
你不能在同一个语句中两次改变同一列 - 这就是SQLCODE -612告诉你的。根据{{3}}
列名只能在单个ALTER TABLE语句中的一个ADD,DROP COLUMN或ALTER COLUMN子句中引用。
其他尝试在语法上是不正确的。
答案 1 :(得分:0)
alter table tbl
alter COLUMN col set DATA TYPE VARCHAR(128)
ALTER column B SET DEFAULT current user;