Utilisation d'une variable dans la requête dynamique dans SQL Server
-
12-12-2019 - |
Question
Qu'est-ce que j'essaie de faire de cette requête, c'est que j'essaie d'obtenir toutes les lignes anciennes que la limite spécifiée de la table CustomerTransaction:
@Cutoffnumber INT
SELECT @SQL = 'SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) > @Cutoffnumber '
Mais je reçois l'erreur ci-dessous, notez qu'il s'agit d'une requête SQL dynamique.
doit déclarer la variable scalaire "@Cutoffnumber"
Comment devrais-je aller.
La solution
regarder dans sp_executesql
Autres conseils
Decalre @Cutoffnumber INT
Set @Cutoffnumber = @someValue
SELECT @SQL = 'SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) >' + @Cutoffnumber
Bien que cela semble que vous puissiez le faire sans SQL dynamique:
Declare @Cutoffnumber INT
Set @Cutoffnumber = @someValue
SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) > @Cutoffnumber
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow