ho una banale stored procedure di ricerca a cui posso passare uno o piᅵ
parametri, se non passo il parametro voglio che non ci sia un filtro
per cui uso una funzione isnull che attiva il filtro solo nel caso in
cui il parametro sia valorizzato.
es.:
CREATE PROCEDURE prc_Test
@P1 int = NULL,
@P2 nvarchar(100) = NULL,
@P3 int = NULL
AS
BEGIN
SELECT Tabella.ColonnaA, Tabella.ColonnaB, Tabella.ColonnaC
WHERE Tabella.ColonnaX = ISNULL( @P1, Tabella.ColonnaA) AND
Tabella.ColonnaY = ISNULL( @P2, Tabella.ColonnaY) AND
Tabella.ColonnaZ = ISNULL( @P3, Tabella.ColonnaZ)
tutto bellissimo, il problema ᅵ che se ad esempio il campo ColonnaX ᅵ
nullabile ed io non passo il parametro @P1 non mi recupera i record con
valore NULL mentre invece dovrebbe, perchᅵ
ColonnaX = ColonnaX
non restituisce niente se ColonnaX ᅵ NULL
(dovrebbe essere ColonnaX IS NULL).
Qualcuno ha idea di quale sia il sistema migliore per risolvere il
problema? grazie
Ciao Alessandro,
Questo ᅵ il risultato di una ricerca di 5 secondi (giusto il tempo di
scrivere) eseguita in Google Groups:
http://groups.google.it/group/microsoft.public.it.sql/browse_thread/thread/59359884f3bc01d8/
Nel thread troverai un esempio basato sul Dynamic SQL ad opera di Itzik ed
una tecnica che utilizza una UDF inline suggerita da Marcello.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo
http://social.microsoft.com/Forums/it-IT/sqlserverit
> Questo ᅵ il risultato di una ricerca di 5 secondi (giusto il tempo di
> scrivere) eseguita in Google Groups:
esagerato :D
> http://groups.google.it/group/microsoft.public.it.sql/browse_thread/thread/59359884f3bc01d8/
>
>
> Nel thread troverai un esempio basato sul Dynamic SQL ad opera di Itzik
> ed una tecnica che utilizza una UDF inline suggerita da Marcello.
ti ringrazio sentitamente
Il più brutto, ma rapidissimo è una bella "[...] OR @P1 IS NULL" :)