刚开始的存储过程:
create PROCEDURE [dbo].[mytest]
(
@myTable varchar(100)
)
AS
select * from @myTable
运行时,显示错误:
消息 1087,级别 15,状态 2,过程 mytest,第 6 行
必须声明表变量 "@myTable"。
查了查,原来不能在表名字段名中用变量,要用动态sql
修改如下:
create PROCEDURE [dbo].[mytest]
(
@myTable varchar(100)
)
AS
declare @strSQL varchar(1000);
set @strSQL ='select * from ' + @myTable
exec (@strSQL)
本文介绍了一种解决使用变量作为表名时遇到的问题的方法。通过将存储过程更新为使用动态SQL来代替直接引用变量的方式,成功避免了错误并实现了预期的功能。
1206

被折叠的 条评论
为什么被折叠?



