Хранимая процедура для нескольких таблиц - PullRequest
2 голосов
/ 30 марта 2011

Я хочу написать хранимую процедуру для моих таблиц, которые имеют похожий формат

, например

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 ]

2 голосов
/ 30 марта 2011

Добавьте скобки после exec:

declare @b nvarchar(100) 
set @b='alerts' 
declare @a nvarchar(100) 
set @a= 'select * from '+@b 
exec (@a )
2 голосов
/ 30 марта 2011

Попробуйте это:

exec(@a);

Если скобки опущены, sql-сервер будет считать @a хранимой процедурой.

0 голосов
/ 03 апреля 2011

Альтернативой предыдущим ответам будет:

Exec sp_executesql @a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...