Hola compañeros: tengo un problema para un triger cuando elimina datos. El
tema es asi, al inicia mi app creo una tabla temporal de sesion e inserto un
valor (la idea de variables globales) luego en triger usar ese valor, el
triger funciona perfecto excepto para las eliminaciones que no toma el valor
de Usuario_ID, (toma -1) como si no encontrase la tabla temporal.
Agradeceria me indique porque para los insert o update si funciona y para
los delete no.
Saludos
Carlos
PD: es un SQL2000
CREATE TRIGGER Domicilios_Audit ON [dbo].[Domicilios]
FOR INSERT, UPDATE, DELETE
AS
DECLARE @Ins int,@Del int
DECLARE @Usuario_ID smallint
EXEC sp_GetUsuario_ID @Usuario_ID OUTPUT
SELECT @Ins=COUNT(*) FROM Inserted
SELECT @Del=COUNT(*) FROM Deleted
IF @Ins<>0 AND @Del=0
INSERT INTO AUDITORIA_Domicilios(Estante,A_D,Columna,Fila,Usuario_ID,Tipo)
SELECT Estante,A_D,Columna,Fila,Usuario_ID=@Usuario_ID,Tipo='I' FROM
Inserted
ELSE
IF @Ins=0 AND @Del<>0
INSERT INTO AUDITORIA_Domicilios(Estante,A_D,Columna,Fila,Usuario_ID,Tipo)
SELECT Estante,A_D,Columna,Fila,Usuario_ID=@Usuario_ID,Tipo='D' FROM Deleted
ELSE
INSERT INTO AUDITORIA_Domicilios(Estante,A_D,Columna,Fila,Usuario_ID,Tipo)
SELECT Estante,A_D,Columna,Fila,Usuario_ID=@Usuario_ID,Tipo='U' FROM
Inserted
CREATE PROCEDURE sp_GetUsuario_ID @Usuario_ID smallint OUTPUT AS
IF Object_id('tempdb.dbo.#Variables') IS NULL
SELECT @Usuario_ID=-1
ELSE
SELECT @Usuario_ID=Usuario_ID FROM #Variables
GO
-
Leer las respuestas