Outra forma que tratar condições na cláusula WHERE no SQL Server 2000 ou 2005, é a seguinte:
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