Utiliza DELETED en vez de INSERTED
Saludos
Marcelo Colombani
----- Original Message -----
From: Carlos Adolfo Codesido
To: Marcelo Colombani
Sent: Friday, October 26, 2007 9:57 PM
Subject: [dbms] Trigger antes de ejecutar cambios en una tabla
Estimados Listeros:
Tengo un pequeño inconveniente con un trigger que quiero implementar. La idea
es que cuando hago un update en una tabla me dispare este trigger y me copie el
registro a actualizar en una tabla de Log.
Ahora bien, este trigger funciona bien cuando utilizo la sentencia "AFTER",
me copia dicho registro en la tabla de respaldo, pero yo lo que quiero es que
me lo ejecute antes de la actualización de manera tal que me respalde dicho
registro en su estado original antes de la actualización.
La sintaxis del trigger es la siguiente:
CREATE TRIGGER TR_Config_Log
BEFORE UPDATE
ON Config
FOR EACH ROW
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO bdLog.dbo.Config_Log
(ID, Valor)
SELECT *
FROM INSERTED
END
El error que me tira es el siguiente: Línea 2: sintaxis incorrecta cerca de
'BEFORE'.
Si utilizo la sentencia "AFTER" lo ejecuta y funciona Ok. Pero como dije
antes, me carga los registros ya actualizados, lo cual no me sirve.
Alguien podría darme una mano con esto? Desde ya muchas gracias a todos.