Использование переменной в динамическом запросе в SQL Server - PullRequest
0 голосов
/ 13 марта 2012

Из этого запроса я пытаюсь получить все строки, которые старше указанного номера Cutoffnumber из таблицы customertransaction:

@Cutoffnumber INT

SELECT @SQL = 'SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) > @Cutoffnumber '

Но я получаю приведенную ниже ошибку. Обратите внимание, что это динамический запрос SQL.

Необходимо объявить скалярную переменную "@Cutoffnumber"

Как мне быть.

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Просмотр sp_executesql

0 голосов
/ 13 марта 2012
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 
...