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