|
Problemas con la devolución de resultados
Hola a todos.
He creado el siguiente procedimiento en el servidor SQL
CREATE PROCEDURE [dbo].[acumula_piezas_defectuosas]
@ID_Trabajo INT, @CodDefecto INT, @NumPiezas INT
AS
BEGIN
SET IMPLICIT_TRANSACTIONS ON
BEGIN TRY
-- analiza si ya existen piezas en esta partida con el tipo de defecto
SELECT * FROM DefectosTemp
WHERE ID_Trabajo = @ID_Trabajo AND CodDefecto = @CodDefecto
IF @@ROWCOUNT > 0
-- si ya hay piezas con ese defecto acumula las piezas
UPDATE DefectosTemp SET NumPiezas = NumPiezas + @NumPiezas
WHERE ID_Trabajo = @ID_Trabajo AND CodDefecto = @CodDefecto
ELSE
-- el tipo de defecto es nuevo para la partida actual y por ello crea un
-- nuevo registro
INSERT INTO DefectosTemp
(CodDetalle, CodInstalacion, CodDefecto, NumPiezas, ID_Trabajo)
SELECT CodDetalle, CodInstalacion, @CodDefecto, @NumPiezas, @ID_Trabajo
FROM TrabajosActivos WHERE ID_Trabajo = @ID_Trabajo
COMMIT TRANSACTION
RETURN 0 -- Operación correcta
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
RETURN -4
END CATCH
END
y lo llamo con la siguiente consulta
DECLARE @Ret INT
EXECUTE @Ret = dbo.acumula_piezas_defectuosas :V0, :V1, :V2
SELECT Result = @Ret
el proceso se ejecuta correctamente pero me devuelve el primer campo del
primer select de la función en vez de @Ret
Cómo podría solucionar esto?
Espero vuestras respuestas. Gracias a todos
|