none
Procedure -> parametros com if RRS feed

  • Pergunta

  • Pessoal, estou com dificuldade de criar a proc, preciso que só os parametros que forem <> 0 sejam executados, no final da proc as linhas estão destacadas para melhor entendimento.

     

     

    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[st_TBSLA_Emissao_Tempo_Resposta_Pesq]')

    and OBJECTPROPERTY(id, N'IsProcedure') = 1)

    drop procedure [dbo].[st_TBSLA_Emissao_Tempo_Resposta_Pesq]

    GO

     

    CREATE PROCEDURE [dbo].[st_TBSLA_Emissao_Tempo_Resposta_Pesq] --4,1,3,14

    @idDocumento int,@idCentral int, @idSegmento int, @idRamo int

    AS

    BEGIN

    select

    a.id_tempo_resposta,

    a.id_tipo_documento,

    b.ds_tipo_documento,

    a.id_central,

    c.ds_central_emissao,

    a.id_segmento,

    d.ds_segmento_corretor,

    a.id_ramo,

    e.desc_ramo

    from

    dbo.TBSLA_Emissao_Tempo_Resposta a,

    db_sat..tbsat_tipo_documento b,

    db_sat..tbsat_central_emissao c,

    db_sat..TBSAT_SEGMENTO_CORRETOR d,

    TBSLA_Emissao_Ramo e

    where

    a.id_tipo_documento = b.id_tipo_documento

    and

    a.id_central = c.id_central_emissao

    and

    a.id_segmento = d.id_segmento_corretor

    and

    a.id_ramo = e.cod_ramo

     

    --Obs: se todos os parametros forem <> 0 , executa com todos os and

    --só entrar nesse and se @idDocumento <> 0

    and

    a.id_tipo_documento = @idDocumento

     

    --só entrar nesse and se @idCentral<> 0

    and

    a.id_central = @idCentral

     

    --só entrar nesse and se @idSegmento<> 0

    and

    a.id_segmento = @idSegmento

     

    --só entrar nesse and se @idRamo<> 0

    and

    a.id_ramo = @idRamo

     

    SET NOCOUNT ON

    SET NOCOUNT OFF

    END

    GO

    grant exec on [st_TBSLA_Emissao_Tempo_Resposta_Pesq] to usr_agfinspecao

     

     

    Grata

     

    Iza

    sexta-feira, 20 de junho de 2008 13:19

Todas as Respostas

  • Olá Izaura,

     

    Tente assim:

    Code Snippet

    --Obs: se todos os parametros forem <> 0 , executa com todos os and

    --só entrar nesse and se @idDocumento <> 0

    and (@idDocumento = 0 OR a.id_tipo_documento = @idDocumento)

    --só entrar nesse and se @idCentral<> 0

    and (@idCentral = 0 OR a.id_central = @idCentral)

    --só entrar nesse and se @idSegmento<> 0

    and (@idSegmento = 0 OR a.id_segmento = @idSegmento)

    --só entrar nesse and se @idRamo<> 0

    and (@idRamo = 0 OR a.id_ramo = @idRamo)

     

     


    Um abraço,

    Raul Santos

    sexta-feira, 20 de junho de 2008 13:36
  • Olá Raul!

     

    Obrigada pela ajuda, agora tá certinho .....

     

    Iza
    sexta-feira, 20 de junho de 2008 13:48
  • Maravilha!!!

    sexta-feira, 20 de junho de 2008 14:10
  • Seria bom classificar como respondido o tópico =D
    sexta-feira, 20 de junho de 2008 19:51