目前我有一个 Item 表和一个 ItemWaste 表。 两个表都会有一些字段,例如:名称、金额等。但是 ItemWaste 表还会多一个字段,即 TimeWasted。 我希望自动将 Item 表中的 DELETED 项目插入到 ItemWaste 表中,同时将删除时间插入到 TimeWasted 字段中。
我不知道该怎么做,是使用触发器吗???
希望能在这里得到一些帮助...感谢任何反馈...谢谢....
当然 - 不是问题。
您需要一个基本的
AFTER DELETE
触发器 - 像这样:
CREATE TRIGGER trg_ItemDelete
ON dbo.Item
AFTER DELETE
AS
INSERT INTO dbo.ItemWaste(Name, Amount, TimeWasted)
SELECT d.Name, d.Amount, GETDATE()
FROM Deleted d
仅此而已!要记住的一点:触发器被称为“每批次一次” - 例如如果一次删除 100 行,它将被称为 once 并且伪表 Deleted
将包含 100 行。触发器
不是每行调用一次(这是一个常见的误解)。
IF INSERTING THEN
INSERT INTO trigger_test (name, gender)
VALUES (NEW.name, NEW.gender);
-- Send message about the new record added
INSERT INTO trigger_test (message)
VALUES ('New record added: ' || NEW.name);
END IF;
IF DELETING THEN
-- Store the gender of the record being deleted
SET gender_value = OLD.gender;
DELETE FROM trigger_test
WHERE name = OLD.name AND gender = OLD.gender;
-- Send message about the record being deleted
INSERT INTO trigger_test (message)
VALUES ('Record deleted: ' || OLD.name || ' with gender: ' || gender_value);
END IF;
结束;