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