Повторное редактирование - похоже, вы должны использовать sp_ExecuteSQL против (параметризованного) nvarchar
, содержащего TSQL.
Поиск по sp_ExecuteSQL; простой пример:
DECLARE @SQL nvarchar(4000),
@Table varchar(20) = 'ORDERS',
@IDColumn varchar(20) = 'OrderID',
@ID int = 10248
SET @SQL = 'SELECT * FROM [' + @Table + '] WHERE ['
+ @IDColumn + '] = @Key'
EXEC sp_executesql @SQL, N'@Key int', @ID
Обратите внимание, что имена таблиц и столбцов должны быть объединены в запросе, но значения (например, @Key
) могут быть параметризованы.
Существует временная хранимая процедура, но она предназначена для каждого соединения, а не для sp.
Однако вы можете захотеть взглянуть на общие табличные выражения - они могут быть тем, что вы ищете (хотя вы можете читать из них только один раз).
Может быть, если вы сможете уточнить, что вы пытаетесь сделать ?