none
Enviando o SQL para a Procedure??? RRS feed

  • Pergunta

  • Olá,

     

    Existe alguma maneira de eu enviar uma parte do comando SQL para a Stored Procedure?

    Por exemplo, tenho que fazer um select na tabela de clientes. Caso o usuário selecione, em uma combo, o tipo de cliente desejado, devo inserir uma cláusula WHERE por tipo de cliente. Se ele não selecionar nenhum tipo, não insiro nada.

    Traduzindo: Tem como colocar "Where Tipo = 10" e fazer isso parte do comando da procedure que já tem "Select * From Cliente"?

     

    Grato,

    Clemilson.

    terça-feira, 26 de junho de 2007 03:48

Todas as Respostas

  •  

     

     sim existe mais nao muito boa pratica nao. segue exemplo

     

     create proc consulta @where varchar(1000)

     as

     

       declare @consulta nvarchar(2000)

     

       Select @consulta = 'Select campos from tabela ' + @where

     

      sp_executesql @consulta

     

     

     

    Abs;

     

    terça-feira, 26 de junho de 2007 10:03
  • Clemilson,

     

    Você poderia fazer isso sim, até mesmo utilizando ao invês da stored procedure sp_executesql o comando Exec ou Execute, mas neste caso você estaria deixando de utilizar o plano de execução criado pelo SQL Server, desta forma, é melhor utilizar a sp_executesql.

     

    Mas a nível de conhecimento, veja este exemplo utilizando o comando Exec.

     

    Declare @Comando VarChar(100)

     

    Set @Comando='Select * from Produtos'

     

    Exec(@comando)

     

    terça-feira, 26 de junho de 2007 12:31