GLP*_*GLP 6 t-sql sql-server stored-procedures alter-table sql-server-2008
我是否可以使用一个存储过程向表中添加新列并在列后面处理列?例如,我有以下存储过程:
...
alter table tb1
add col1 varchar(1) null
insert into tb1(col1)
values ('Y')
Run Code Online (Sandbox Code Playgroud)
我说错了
col1无效.
Lit*_*les 11
尝试使用默认值"Y"创建表,而不是之后插入值.
alter table tb1 add col1 varchar(1) not null DEFAULT ('Y')
Run Code Online (Sandbox Code Playgroud)
GO根据GO文档,您需要在两行之间创建表:
SQL Server实用程序将GO解释为应将当前批处理的Transact-SQL语句发送到SQL Server实例的信号.
但是,您不能GO在存储过程中使用语句.
编辑
或者,您可以使用该EXEC语句来执行您的代码:
EXEC ('alter table tb1 add col1 varchar(1) null')
EXEC ('update tb1 set col1 = ''Y''')
Run Code Online (Sandbox Code Playgroud)