0

このクエリからやろうとしているのは、customertransaction テーブルから指定された Cutoffnumber より古いすべての行を取得しようとしていることです。

@Cutoffnumber INT

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

しかし、以下のエラーが表示されます。これは動的 SQL クエリであることに注意してください。

スカラー変数「@Cutoffnumber」を宣言する必要があります

どうすればいいのだろう。

4

2 に答える 2

1

sp_executesqlを調べる

于 2012-03-13T04:11:48.703 に答える
-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 
于 2012-03-13T04:18:07.820 に答える