Hola a todos.
Tengo un problema de interbloqueo con un proceso. Les explico.
En algunas tablas tengo triggers de insert y update que ejecutan un
procedimiento almacenado que graba registros en otra tabla para saber si se
han modificado o insertado registros.
La tabla donde se graban los registros tiene esta estructura.
Secuencia, int, identity=si (PK)
Articulo, nvarchar(20)
UID, uniqueidentifier
Operacion, int
El trigger que llama
FOR INSERT
AS
DECLARE @UI uniqueidentifier
SELECT @UI = UI FROM Inserted
EXEC GrabarOperaciones
@Articulo = 'XXXX',
@UI = @UI,
@Operacion = 0 (Para trigger insert, 1 para trigger update)
El procedimiento almacenado al que llaman los triggers es algo así.
CREATE PROCEDURE [GrabarOperaciones]
@Articulo nvarchar(20),
@UI uniqueidentifier,
@Operacion int
AS
UPDATE Operaciones
SET Operacion=@Operacion
WHERE UI=@UI
INSERT INTO Operaciones
(UI,Operacion)
SELECT Articulos.Articulo,@UI,@Operacion
FROM Articulos
WHERE Articulos.Articulo=@Articulo AND
(NOT EXISTS (SELECT Secuencia FROM Operaciones
WHERE Articulo=@Articulo AND IU=@IU))
En la tabla operaciones necesito un único registro por Articulo y UI.
Muchas gracias por la ayuda.
Leer las respuestas