【发布时间】:2012-09-03 17:11:49
【问题描述】:
我可以有一个存储过程来向表中添加一个新列并处理该列的后记吗?例如,我有以下存储过程:
...
alter table tb1
add col1 varchar(1) null
insert into tb1(col1)
values ('Y')
我收到一个错误提示
col1 无效。
【问题讨论】:
-
添加列后是否执行go命令?
-
你不能在存储过程中间有
GO语句 -
SQL Server 在您创建 proc 时检查该列是否存在,因此您必须手动添加该列,创建 proc,然后删除该列才能使其正常工作。我会建议 @LittleBobbyTables 添加的动态 SQL 解决方法,尽管可能使用
sp_executesql代替。
标签: sql-server sql-server-2008 tsql stored-procedures alter-table