SSMS
 sql >> Base de données >  >> Database Tools >> SSMS

Paramètre fonctionnant dans SSMS mais pas SSRS

Il n'est pas très clair d'après votre question sur quel paramètre vous rencontrez des difficultés pour implémenter le filtrage "ALL". Mais en regardant vos deux requêtes, il semble que ce soit le @p_ServerName paramètre. Dans votre première requête, les deux autres semblent avoir fait correctement le filtrage 'ALL'.

Donc le problème doit être là :

(c1.SystemName = @p_ServerName OR c1.SystemName = c1.SystemName)

Tout d'abord, qu'essayez-vous d'accomplir avec la deuxième partie ? c1.SystemName=c1.SystemName sera toujours vrai (sauf si c1.SystemName est NULL et si tel est votre objectif, utilisez c1.SystemName IS NOT NULL

Je pense que cela devrait plutôt ressembler à :

([email protected]_ServerName OR @p_ServerName='all')

C'est ainsi que vous avez implémenté les deux autres paramètres, alors peut-être qu'il me manque quelque chose.

De plus, je ne suis pas sûr de ce que vous voulez dire lorsque vous dites que la solution de requête UNIONed doit être la façon dont SSRS fait les choses. SSRS ne réécrit pas vos requêtes en fonction des paramètres, il colle simplement ces valeurs dans ces variables pour que vous les utilisiez dans votre requête. Si votre paramètre @p_ServerName est une chaîne alors c'est juste une variable VARCHAR avec les caractères "all" dedans.