Jajaja te estoy cargando Pancho!!

Abrazo

Alejandro.

 

De: [email protected] [mailto:[email protected]] En nombre de francisco prieto
Enviado el: Jueves, 19 de Julio de 2012 06:23 p.m.
Para: GUFA List Member
Asunto: [GUFA] OFF TOPIC Procedimientos almacenados

 

Ud tiene razon!! 

 

Marche preso...

 

Pancho

El 19 de julio de 2012 18:04, Alejandro, Newbery
<[email protected]> escribió:

Si, pero el enunciado era “Necesito que si el primer procedimiento no se
ejecuta no haga el segundo. ¿Se podrá hacer esto sin tener que poner un IF
?”

Saludos

Alejandro.

 

 

De: [email protected] [mailto:[email protected]] En nombre de francisco prieto
Enviado el: Jueves, 19 de Julio de 2012 05:47 p.m.


Para: GUFA List Member
Asunto: [GUFA] OFF TOPIC Procedimientos almacenados

 

Es cierto... pero funciona en cualquier version...

 

Saludos,

 

Pancho

Cordoba

El 19 de julio de 2012 17:13, Alejandro, Newbery
<[email protected]> escribió:

Pero en ese caso Pancho, debe utilizar un IF.

Saludos

Ale.

 

De: [email protected] [mailto:[email protected]] En nombre de francisco prieto
Enviado el: Jueves, 19 de Julio de 2012 04:32 p.m.


Para: GUFA List Member
Asunto: [GUFA] OFF TOPIC Procedimientos almacenados

 

Podrias utilizar tambien un parametro adicional de salida para saber si se
ejecuto o no... 

 

Simplemente inicializas una variable en 0 y dentro del procedimiento le
colocas el valor 1....

 

Si posees un 1 entonces se ejecuto y seguis adelante.

 

Algo asi...

 

                                                                       Set
@Pudo=0;

                                                                       if
@NoLoQuiero=1

 
begin

 
Select @Pos=CharIndex(',',@ValoresAdm);

 
Set @Resto=SUBSTRING(@ValoresAdm,@Pos+1,len(@ValoresAdm)-@Pos-1)

 
Select @Pos=CharIndex('-',@Resto);

 
Set @Auxiliar=SUBSTRING(@Resto,1,@Pos-1);

 
Select @Llegada=CONVERT(datetime,@Auxiliar);

 
Set @NroTurno=SUBSTRING(@Resto,@Pos+1,4);

 
exec @Pudo= CheckIn 'OT',@Llegada,@NroTurno,@Actuante,@Pudo;

 
Saludos,

 

Pancho

Cordoba

El 19 de julio de 2012 15:54, Alejandro, Newbery
<[email protected]> escribió:

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