Молчание — добродетель дураков (Ф. Бэкон).

SQL SERVER – результаты динамического SQL в переменную

1 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
22 ноября 2018
SQL SERVER - результаты динамического SQL в переменную
Есть ли способ сохранить результаты динамического SQL в переменной? Это очень популярный вопрос, давайте посмотрим ответ на этот вопрос в этом блоге.

Например, вот динамический SQL, который мы выполняем с помощью sp_executeSQL. Когда вы запускаете процедуру, вы получаете необходимые результаты. В нашем случае мы видим строку результата как Маркетинг, который является названием отдела с ID = 13.

DECLARE @sqlCommand NVARCHAR(4000)
DECLARE @ID INT
SET @ID = 13
SET @sqlCommand = 'SELECT [Name]
                   FROM [AndreyExWorks2018].[HumanResources].[Department]
                   WHERE DepartmentID = @ID'
EXEC sp_executesql @sqlCommand, N'@ID INT', @ID = @ID

 

Теперь возникает вопрос, как получить значение столбца [Name] в переменной.

Вот очень простой трюк для того же самого. Вот скрипт, который объявляет дополнительный параметр, который является Name и возвращает значение в него.

DECLARE @sqlCommand NVARCHAR(4000)
DECLARE @ID INT
DECLARE @Name NVARCHAR(100)
SET @ID = 13
SET @sqlCommand = 'SELECT @Name = [Name]
                   FROM [AndreyExWorks2018].[HumanResources].[Department]
                   WHERE DepartmentID = @ID'
EXEC sp_executesql @sqlCommand, N'@ID INT, @Name NVARCHAR(100) OUTPUT',
@ID = @ID, @Name = @Name OUTPUT
SELECT @Name ReturnedName

 

Вы можете использовать этот сценарий и пример в качестве шаблона для своей потребности, где вы хотите запустить динамический SQL и сохранить результат его в переменной.

Если у вас есть такой сценарий, мы просим вас поделиться им, и мы опубликуем его с должным уважением к вам. Всегда используйте sp_executesql вместо EXEC для запуска динамического SQL.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Просмотров: 11

Если статья понравилась, то поделитесь ей в социальных сетях:

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close