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] <[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