Использование переменной в динамическом запросе в SQL Server

StackOverflow https://stackoverflow.com//questions/9678195

  •  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 
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top