Stored procedures 是否可以在db2中的存储过程中添加新列?

Stored procedures 是否可以在db2中的存储过程中添加新列?,stored-procedures,db2,Stored Procedures,Db2,您好,我是一名初级开发人员,我只想问一下,在db2的存储过程中是否可以添加一个新列?我的意思是像alter table一样添加一个新的列,但在存储过程中?是的,这是可能的,但您必须使用动态sql --# SET TERMINATOR @ create table test_add_col(a int) in userspace1@ begin execute immediate 'alter table test_add_col add b int'; end@ select colna

您好,我是一名初级开发人员,我只想问一下,在db2的存储过程中是否可以添加一个新列?我的意思是像alter table一样添加一个新的列,但在存储过程中?

是的,这是可能的,但您必须使用动态sql

--# SET TERMINATOR @
create table test_add_col(a int) in userspace1@

begin
  execute immediate 'alter table test_add_col add b int';
end@

select colname 
from syscat.columns 
where tabschema=user and tabname='TEST_ADD_COL'@
结果是:

科尔曼 - A. B

问题是,你为什么要这样做?如果从循环调用这个过程,您可能会得到多个这样的列,这可能不是您想要的。通常,表的模式会缓慢地手动更改,而不是通过存储过程更改。