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 >
