Вопрос по хранимой процедуре: как бы извратиться ...

Есть хранимая процедура, в ней такое присвоение переменной:
declare @cur_id int
set @cur_id = min(Id_Field) from MyTable
Здесь MyTable и Id_Field явные названия таблицы и поля в ней. Все ОК, работает.Вопрос, а можно ли в пределах ОДНОЙ хранимой процедуры в эту строку динамически поставлять названия Id_Field и MyTable из заранее заданных переменных:
declare @Id_Field
declare @MyTable
Т.е. можно ли решить такую задачу без использования второй (вспомогательной) хранимой процедуры или временной таблицы?
3 ответа

sp_executesql подойдет?


Можно с помощью динамического запроса:
CREATE PROCEDURE MyProc @Id_Field sysname, @MyTable sysname
AS DECLARE @SQL nvarchar(<b>1024</b>), @Cur_ID int SET @SQL = 'SELECT @Cur_ID = MIN('+@Id_Field+') FROM '+ @MyTable EXEC sp_ExecuteSQL @stmt = @SQL, @Params = N'@Cur_ID int OUTPUT', @Cur_ID = @Cur_ID OUTPUT


Спасибо, ребята, то, что нужно.