Outra forma que tratar condições na cláusula WHERE no SQL Server 2000 ou 2005, é a seguinte:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
CREATE PROCEDURE SP_CONSULTA /* define o parâmetro obrigatório */ @UF varchar(100), /* define o parâmetro opcional - o valor default de ver igual a "null" */ @CIDADE varchar(100) = null AS BEGIN /* declara a variável que receberá a instrução SQL */ DECLARE @strSQL varchar(5000) /* cria a primeira parte da instrução SQL */ Set @strSQL = 'SELECT * FROM TB_CIDADE WHERE UF = ''' + @UF + '''' /* verifica se o parâmetro opcional não é nulo */ IF @CIDADE IS NOT NULL BEGIN /* se a condição for verdadeira, concatena o parâmetro opcional */ Set @strSQL = @strSQL + ' AND NOME_CIDADE = ''' + @CIDADE + '''' END /* executa a instrução SQL na variável @strSQL */ EXEC(@strSQL) RETURN(0) END |