多个表的存储过程

时间:2011-03-30 05:01:16

标签: sql-server-2005 stored-procedures

我想为具有类似格式

的表编写存储过程

例如

tbl#Students(id int,name nvarchar(100))
tbl#Teachers(id int,name nvarchar(100))

此代码不正确,但讨论我的目的

declare @b nvarchar(100)
set @b='TBL#Students'
declare @a nvarchar(100)
set @a= 'select * from '+@b
exec @a
//Error : Could not find stored procedure 'select * from TBL#Motamem'.

什么是正确的代码?

3 个答案:

答案 0 :(得分:2)

试试这个:

exec(@a);

如果省略括号,sql-server会将@a视为存储过程。

答案 1 :(得分:2)

在exec:

之后添加括号
declare @b nvarchar(100) 
set @b='alerts' 
declare @a nvarchar(100) 
set @a= 'select * from '+@b 
exec (@a )

答案 2 :(得分:0)

以前答案的替代方案是:

Exec sp_executesql @a