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!**** > > ** ** >
