Sql server 2005 用于多个表的存储过程 我想为具有类似格式的表编写一个存储过程

Sql server 2005 用于多个表的存储过程 我想为具有类似格式的表编写一个存储过程,sql-server-2005,stored-procedures,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

比如说

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'.
正确的代码是什么?

试试这个:

exec(@a);

如果省略括号,SQLServer将把@作为存储过程。< /P> < P>

declare @b nvarchar(100) 
set @b='alerts' 
declare @a nvarchar(100) 
set @a= 'select * from '+@b 
exec (@a )

替代先前答案的另一种方法是:

Exec sp_executesql @a