在DB2 LUW 10.5上更改数据类型和缺省值

时间:2015-04-07 10:51:16

标签: alter-table db2-luw

我试图在同一个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

2 个答案:

答案 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;