Stored Procedure (SP) com WHERE opcionais

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

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *