刚开始的存储过程:
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)