Hola yo lo haria por medio de programacion sql con condicionales y estableciendo en una variable la posible cadena que esta ejecutandose, eso lo he hecho en el trabajo y me resulto, para hacer algo asi como quiebres ahi te evio un ejemplo
Código SQL
[-]
CREATE PROCEDURE ValidaUsuario
@codi_em_barras char(10), @codi_emp int, @codempresa char(2), @cod_comedor char(10),
@codig_user char(10), @tipo_comida char(50), @SALIDA CHAR(100) out, @CODBARR CHAR(100) out,
@CODIGO int out, @NOMBRES CHAR(200) out as
declare @est_empl char(2)
select @est_empl = ""
declare @codclub char(3)
select @codclub = ''
declare @codfil char(10)
declare @codig_comensal int
select @codig_comensal = 0
select convert(char(25),getdate(),113)
select @codig_comensal=RH_EMPLEADO.CODIGO,@CODIGO= RH_EMPLEADO.CODIGO,
@CODBARR=RH_EMPLEADO.cod_barras, @nombres= RH_EMPLEADO.NOMBRE+' '+ RH_EMPLEADO.APELLIDO ,
@est_empl = RH_NACIONALES.COD_ESTADO_EMP, @codfil = rh_empleado.cod_filial
from
RH_EMPLEADO, RH_NACIONALES
WHERE
(RH_EMPLEADO.COD_BARRAS= @codi_em_barras or RH_EMPLEADO.CODIGO=@codi_emp)
and (RH_EMPLEADO.CODIGO=RH_NACIONALES.CODIGO)
AND (RH_EMPLEADO.COD_EMPRESA=@codempresa)
select convert(char(25),getdate(),113)
select @codig_comensal
select @est_empl
if @codig_comensal<>null
begin
if @est_empl<>'1'
begin
select @salida= "No esta activo el empleado"
end
else
begin
select convert(char(25),getdate(),113)
if NOT exists(SELECT COD_CLUB FROM ROL_CLUB_EMPL WHERE COD_EMPRESA=@codempresa AND CODIGO=@codig_comensal AND COD_CLUB=@cod_comedor)
begin
select @salida= "Empleado no esta asignado con este proveedor"
end
else
begin
declare @cod_comi char(20)
select convert(char(25),getdate(),113)
SELECT @cod_comi = COD_COMIDA
FROM CC_COMIDA WHERE COD_EMPRESA = @codempresa and COD_FILIAL=@codfil and tipo_comida =@tipo_comida
select convert(char(25),getdate(),113)
if @cod_comi=NULL
begin
select @salida="No tiene asignado ninguna comida"
end
else
begin
declare @temp int
select "menor tiempo", convert(char(25),getdate(),113)
Select @temp=codigo from CC_EMPL_COMIDA (INDEX = index_1)
WHERE COD_EMPRESA = @codempresa AND COD_COMIDA = @cod_comi
and codigo= @codig_comensal AND
DATEPART(YY, FECHA_REGISTRO) = DATEPART(YY, GETDATE()) and
DATEPART(MM, FECHA_REGISTRO) = DATEPART(MM, GETDATE()) and
DATEPART(DD, FECHA_REGISTRO) = DATEPART(DD, GETDATE())
select @temp
select "mayor tiempo", convert(char(25),getdate(),113)
if @temp=NULL
begin
insert into cc_empl_comida(COD_EMPRESA,COD_PROV_COMIDA,COD_COMIDA,CODIGO,FECHA_REGISTRO,MODO_INGRESO,COD_USUARIO ,FECSYS)
values (@codempresa, @cod_comedor, @cod_comi ,@codig_comensal, GETDATE(),'BARR',@codig_user,GETDATE())
select @salida='Empleado se registro satisfactoriamente'
end
else
begin
select @salida='Empleado ya registrado una vez'
end
select convert(char(25),getdate(),113)
end
end
end
end
else
begin
select @salida= "Codigo de empleado no existe"
end
GO
Espero te sirva chao