Ver Mensaje Individual
  #1  
Antiguo 18-07-2011
zajoma zajoma is offline
Miembro
 
Registrado: feb 2006
Posts: 32
Reputación: 0
zajoma Va por buen camino
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
Responder Con Cita