Чтобы использовать динамический sql, сначала создайте временную таблицу, используя
Create table #mytemptab (col1 …, col2 …)
Построить динамический SQL, используя следующий метод
DECLARE @sqlstr VARCHAR(5000)
SELECT @sqlstr=’SELECT col1, col2 FROM ‘+@table
Теперь вставьте в созданную вами временную таблицу (убедитесь, что она имеет тот же тип данных, что и выходные данные sql)
SELECT @sqlstr= ‘Insert into #mytemptab (col1, col2 …) ‘+@sqlstr
Выполнить оператор SQL (чтобы вставить данные во временную таблицу)
EXECUTE (@sqlstr)
Теперь используйте временную таблицу в курсоре
DECLARE mycursor CURSOR FOR SELECT col1, col2 FROM #mytemptab
OPEN…
FETCH…
......