Временная функциональная или хранимая процедура в T-SQL

Вы можете динамически сохранять состояние с помощью некоторого ключа, данного каждому дочернему элементу, и получать доступ к каждому состоянию с помощью ключа, который вы ему даете.

34
задан Robert 3 July 2015 в 10:51
поделиться

2 ответа

Повторно отредактируйте - похоже, вы должны использовать 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.

Однако вы можете захотеть взглянуть на Common Table Expressions - они могут быть тем, что вы ищете (хотя вы можете читать из них только один раз).

Возможно, если вы сможете уточнить, что Вы пытаетесь сделать ?

27
ответ дан Marc Gravell 27 November 2019 в 16:58
поделиться

Просто используйте SQL хранимого процесса внутри вашего запроса. Не нужно создавать хранимую процедуру внутри БД, она не даст вам никакого преимущества перед обычным запросом внутри вашего запроса.

-3
ответ дан Frans Bouma 27 November 2019 в 16:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: