在SQL Server中使用动态查询中的变量
-
12-12-2019 - |
题
我想从这个查询中尝试做什么,我正在尝试获取从upperseTransaction表中的指定截止的所有行:
@Cutoffnumber INT
SELECT @SQL = 'SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) > @Cutoffnumber '
.
但我得到了以下错误,请注意,这是一个动态的SQL查询。
必须声明scalar变量“@cutoffnumber”
我该怎么走。
解决方案
其他提示
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