Seria mas o menos asi:

 

 

CREATE PROCEDURE Procedimiento_2_Llamado_desde_Procedimiento_1

(     

      @parametro        char(15))

AS

begin

 

      set nocount on

 

      begin try

            

            -- Acciones a realizar

            -- Si alguna condición no se da, genero error con: raiserror(
message, 16, 1)

 

      end try

      begin catch

 

        -- information to the caller.

            declare @ErrorMessage   varchar(256);

      

            set @ErrorMessage = ERROR_MESSAGE();           

                        

     raiserror(@ErrorMessage, -- Message text.

                   16, -- Severity.

                   1 -- State.

                   )

      

            return(1)

      

      end catch   

end

GO

 

 

CREATE PROCEDURE Procedimiento_1

(

    @parametro        char(15)

)

AS

BEGIN 

      

      SET NOCOUNT ON

            

      BEGIN TRY   

 

            BEGIN TRAN

                  

                  -- Si esta linea genera un error, salta al begin catch,
sin ejecutar el insert

                  exec Procedimiento_2_Llamado_desde_Procedimiento_1
@parametro

 

                  INSERT INTO ……….

 

                  

            COMMIT TRAN

                        

      END TRY

      BEGIN CATCH

 

            -- rollback transaction

            if (@@trancount > 0)

                  rollback tran

            

            -- After the appropriate rollback, echo error information to the
caller.

            declare @ErrorMessage   varchar(256);

      

            set @ErrorMessage = ERROR_MESSAGE()

                        

            raiserror(@ErrorMessage, 16, 1)

            return(1)

      

      END CATCH

 

END

GO

 

Saludos

Alejandro.

 

De: [email protected] [mailto:[email protected]] En nombre de Alejandro Paciotti
Iacchelli
Enviado el: Jueves, 19 de Julio de 2012 03:38 p.m.
Para: GUFA List Member
Asunto: [GUFA] OFF TOPIC Procedimientos almacenados

 

Gracias Alejandro, ¿tendrás un ejemplo como para tirarme un punta?

 

De: [email protected] [mailto:[email protected]] En nombre de Alejandro, Newbery
Enviado el: jueves, 19 de julio de 2012 03:35 p.m.
Para: GUFA List Member
Asunto: [GUFA] OFF TOPIC Procedimientos almacenados

 

Lo podes hacer con manejo de error estructurado, pero a partir del sql 2005.

Saludos

 

Alejandro.

 

De: [email protected] [mailto:[email protected]] En nombre de Alejandro Paciotti
Iacchelli
Enviado el: Jueves, 19 de Julio de 2012 12:47 p.m.
Para: GUFA List Member
Asunto: [GUFA] OFF TOPIC Procedimientos almacenados

 

Estimados: tengo un procedimiento almacenado en SQL SERVER que tiene 2
instrucciones, en la primera llama a otro procedimiento y en la segunda hace
un INSERT, DELETE o UPDATE.

Necesito que si el primer procedimiento no se ejecuta no haga el segundo.
¿Se podrá hacer esto sin tener que poner un IF ?

 

Pego algo del código a modo de ejemplo:

 

ALTER PROCEDURE [dbo].[SP_ALTA_VariacionIndices]

@CodigoVariacion VARCHAR(15),

@CodigoIndice VARCHAR(15),

@Tasa Numeric(16,4),

@CodigoUsuario VARCHAR(15)

 

AS

BEGIN

      SET NOCOUNT ON;

 

      EXECUTE SP_ALTA_Novedades ‘00001’ ,@CodigoUsuario ,’VARIACIONINDICES’

            

      INSERT INTO VariacionIndices (CodigoIndice,CodigoVariacion,Tasa,
FechaAplicacion) VALUES
(@CodigoIndice,@CodigoVariacion,@Tasa,@FechaAplicacion)

END

 

 

Agradecido de antemano!

Responder a