Al final

Return @Resultado

Te mando por si las moscas un ejemplo mio....

USE [ACE]
GO
/****** Object:  StoredProcedure [dbo].[CheckOut]    Script Date: 05/23/2011
16:20:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

/*
 Procedimiento que reserva (check-out) o renueva
 la reserva de un objeto para un usuario
*/
ALTER PROCEDURE [dbo].[CheckOut]
 @TipoObjeto varchar(2),
 @FechaHora datetime,
 @Turno varchar(4),
 @UsuarioId varchar(10),
 @Pudo int OUTPUT
AS

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION

select  @Pudo=COUNT(*) from Bloqueos
WHERE ObjectID = @TipoObjeto+CONVERT(varchar(23),@FechaHora,126)+'/'+@Turno
if @Pudo=0
begin
set @Pudo=1
insert into Bloqueos (objectid,usuarioid,expira)
 values (@TipoObjeto+CONVERT(varchar(23),@FechaHora,126)+'/'+@Turno,
@UsuarioId,DATEADD(mi, 10, GETDATE()))
 end
else
begin
UPDATE Bloqueos
 SET
UsuarioId = @UsuarioId,
Expira = DATEADD(mi, 10, GETDATE()) -- expira en diez minutos
 WHERE
ObjectID = @TipoObjeto+CONVERT(varchar(23),@FechaHora,126)+'/'+@Turno
 AND (Expira IS NULL OR UsuarioID = @UsuarioId)
IF @@ROWCOUNT = 0
begin
 UPDATE Bloqueos
SET
UsuarioId = @UsuarioId,
 Expira = DATEADD(mi, 10, GETDATE()) -- expira en diez minutos
WHERE
 ObjectID = @TipoObjeto+CONVERT(varchar(23),@FechaHora,126)+'/'+@Turno
AND Expira < GETDATE()
 IF @@ROWCOUNT = 0
set @Pudo=0
else
 set @Pudo=2
end
else
 set @Pudo=1
end

COMMIT TRANSACTION

 return @Pudo

Saludos,

Pancho
Cordoba

El 23 de mayo de 2011 16:12, Alejandro Paciotti Iacchelli <
[email protected]> escribió:

> Estimados:
>
>
>
> Estoy haciendo un procedimiento almacenado en SQL SERVER tal que borre un
> registro si se da cierta condición, ¿ cómo puedo hacer para que devuelva -1
> sino se pudo borrar ?
>
>
>
> Paso el código:
>
>
>
> ALTER PROCEDURE [dbo].[SP_BAJA_NODOS]
>
> @CodigoNodo VARCHAR(15)
>
>
>
> AS
>
> BEGIN
>
>       SET NOCOUNT ON;
>
>       DECLARE @Resultado INT
>
>       SET @Resultado = -1
>
>
>
>       SET @Resultado = (SELECT COUNT(CodigoNodo) FROM Nodos WHERE
> CodigoPadre = @CodigoNodo)
>
>
>
>       IF @Resultado = 0
>
>          BEGIN
>
>             DELETE FROM Nodos WHERE CodigoNodo = @CodigoNodo
>
>          END
>
>       ELSE
>
>          -- SELECT -1 Esto ya lo probé y no anda.
>
>          -- RETURN -1 Esto tampoco.
>
> END
>

Responder a