Использование переменной в динамическом запросе в SQL Server
-
12-12-2019 - |
Вопрос
Что я пытаюсь сделать из этого запроса, я пытаюсь получить все строки, которые старше указанного отключения от таблицы CustomerTransactionAction:
@Cutoffnumber INT
SELECT @SQL = 'SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) > @Cutoffnumber '
.
Но я получаю ниже ошибку, обратите внимание, что это динамический запрос SQL.
должен объявить скалярную переменную "@cutoffnumber"
Как мне идти.
Решение
Посмотрите на sp_executeql
Другие советы
Decalre @Cutoffnumber INT
Set @Cutoffnumber = @someValue
SELECT @SQL = 'SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) >' + @Cutoffnumber
.
Хотя кажется, что вы можете сделать это без динамического SQL:
Declare @Cutoffnumber INT
Set @Cutoffnumber = @someValue
SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) > @Cutoffnumber
. Не связан с StackOverflow