Хранимая процедура для нескольких таблиц


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

Например

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

3 ответа:

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

exec(@a);

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

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

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

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

Exec sp_executesql @a