Inquiridor
Procedure -> parametros com if

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 intAS
BEGIN
selecta
.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 fromdbo
.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
wherea
.id_tipo_documento = b.id_tipo_documento anda
.id_central = c.id_central_emissao anda
.id_segmento = d.id_segmento_corretor anda
.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 = @idRamoSET NOCOUNT ON
SET NOCOUNT OFFEND
GO
grant
exec on [st_TBSLA_Emissao_Tempo_Resposta_Pesq] to usr_agfinspecaoGrata
Iza
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
-
-
-