Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Construindo a cláusula WHERE dinâmica no procedimento armazenado


Tente isso em vez disso:
WHERE 1 = 1
AND (@what     IS NULL OR [companies_SimpleList].[Description] Like @What )
AND (@keywords IS NULL OR companies_SimpleList.Keywords        Like @Keywords)
AND (@where    IS NULL OR companies_SimpleList.FullAdress      Like @Where)
...

Se algum dos parâmetros @what , @where é enviado para o procedimento armazenado com NULL valor então a condição será ignorada. Você pode usar 0 em vez de null como um valor de teste, então será algo como @what = 0 OR ...