2012-03-13 44 views
0

我试图从该查询要做的就是我试图让所有超过指定Cutoffnumber年长从customertransaction表中的行:使用动态查询SQL Server中的变量

@Cutoffnumber INT 

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

但是我得到下面的错误,请注意,这是一个动态的SQL查询。

必须声明标量变量 “@Cutoffnumber”

我应该如何着手。

回答

-1
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 
+0

欣赏你的努力,但是那不是我打算这样做。 – 2012-03-13 04:26:45

+0

那么你在找什么? – Colin 2012-03-13 04:32:30