尝试这样的事情:
有:
CREATE TABLE table1 (
id INTEGER,
column1 INTEGER,
STATUS CHAR(10)
);
CREATE TABLE table2 (
id INTEGER,
column1 INTEGER,
STATUS CHAR(10)
);
如果要将 table1 中的旧值插入到新表中,可以执行以下操作:
在mysql中
CREATE TRIGGER triggname AFTER UPDATE ON table1
FOR EACH ROW
BEGIN
IF NEW.STATUS = 'Stop' OR NEW.STATUS = 'Comp' THEN
INSERT INTO table2
VALUES (old.id, old.column1, old.STATUS);
END IF;
END
sql fiddle demo
在 SQL 服务器中:
CREATE TRIGGER TR_status ON table1 AFTER UPDATE AS
BEGIN
INSERT INTO table2
SELECT d.* FROM DELETED d
INNER JOIN INSERTED i ON d.id = i.id
WHERE i.status != d.status AND i.status IN ('Comp','Stop');
END;
在 SQL Server 中,您必须检查表 Inserted 和 Deleted,它们代表更新的记录的 NEW 和 OLD 版本。
sqlfiddle demo