Usando uma variável em Consulta Dinâmica no SQL Server
-
12-12-2019 - |
Pergunta
O que estou tentando fazer com esta consulta é tentar obter todas as linhas mais antigas que o número de corte especificado na tabela customertransaction:
@Cutoffnumber INT
SELECT @SQL = 'SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) > @Cutoffnumber '
Mas estou recebendo o erro abaixo. Observe que esta é uma consulta SQL dinâmica.
Deve declarar a variável escalar "@Cutoffnumber"
Como devo proceder.
Solução
Investigar sp_executesql
Outras dicas
Decalre @Cutoffnumber INT
Set @Cutoffnumber = @someValue
SELECT @SQL = 'SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) >' + @Cutoffnumber
Embora pareça que você poderia fazer isso sem SQL dinâmico:
Declare @Cutoffnumber INT
Set @Cutoffnumber = @someValue
SELECT * FROM customertransaction WHERE DATEDIFF(DD, Transactiondate, GETDATE()) > @Cutoffnumber
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow