У меня динамический запрос, в котором я хочу добавить значение локальной переменной в каждую строку набора результатов.У меня есть упрощенная версия примера ниже.
Хотя этот запрос работает нормально:
DECLARE @purchaseDate AS DATE
SET @purchaseDate = '12/23/2020'
SELECT Name, @purchaseDate
FROM Fruits
Не работает аналогичный динамический SQL:
DECLARE @query AS NVARCHAR(MAX),
@purchaseDate AS DATE
SET @purchaseDate = '12/23/2020'
SET @query = 'SELECT Name, @purchaseDate FROM Fruits'
EXEC sp_executesql @query
Я получаю сообщение об ошибке
Должен объявить скалярную переменную "@purchaseDate".
Поэтому я предположил, что мне может потребоваться объявить в своем запросе buyDate динамический запрос SQLне может получить доступ к переменной.Итак, я попробовал это:
DECLARE @query AS NVARCHAR(MAX)
SET @query = 'DECLARE @purchaseDate AS DATE' +
'SET @purchaseDate = ' + '12/23/2020 ' +
'SELECT Name, @purchaseDate FROM Fruits'
EXEC sp_executesql @query
Но я получаю то же сообщение об ошибке.
Как мне исправить это?