SSMS
 sql >> Base de Dados >  >> Database Tools >> SSMS

Parâmetro funcionando no SSMS, mas não no SSRS


Não está muito claro na sua pergunta em qual parâmetro você está tendo problemas para implementar a filtragem "ALL". Mas olhando para suas duas consultas, parece que é o @p_ServerName parâmetro. Em sua primeira consulta, as outras duas parecem ter a filtragem 'ALL' feita corretamente.

Então o problema deve estar aqui:
(c1.SystemName = @p_ServerName OR c1.SystemName = c1.SystemName)

Primeiro, o que você está tentando alcançar com a segunda parte? c1.SystemName=c1.SystemName será sempre verdadeiro (a menos que c1.SystemName seja NULL e se esse for seu objetivo, use c1.SystemName IS NOT NULL

Eu acho que isso deveria ser mais parecido com:
([email protected]_ServerName OR @p_ServerName='all')

Que é como você implementou os outros dois parâmetros, então talvez eu esteja perdendo alguma coisa.

Além disso, não tenho certeza do que você quer dizer quando diz que a solução de consulta UNIONed deve ser como o SSRS está fazendo as coisas. O SSRS não reescreve suas consultas com base nos parâmetros, apenas mantém esses valores nessas variáveis ​​para você usar em sua consulta. Se o seu parâmetro @p_ServerName é uma string, então é apenas uma variável VARCHAR com os caracteres "all" nela.