我有一个要求,当从包含num作为唯一值的表FAB中插入或删除任何行时,触发器应该被触发。并且根据该num值,应该更新另一个表。
e.g。
FAB table
num code trs
10 A2393 80
20 B3445 780
Reel table
reelnr num use flag
340345 10 500 1
当FAB表中的num 10被删除(或者任何新的num被插入)时,触发器应该被触发并且应该检查包含该num值的卷轴表并给出reelnr。
如何处理?
答案 0 :(得分:0)
你可以使用Inserted&在SQL
中删除了表这两个表是特殊类型的表,只能在触发器的范围内使用。 如果您尝试在触发器范围之外使用这些表,那么您将收到错误。
Inserted
:这些表用于跟踪表中插入的任何新记录。
假设您的表中插入了六行,那么这些表将包含所有插入的六行。
Deleted :
这些表用于跟踪表中的所有已删除记录。
这些表将跟踪上次删除行。
对于插入:
CREATE TRIGGER TR_AUDIT_Insert
ON Reel_table
FOR INSERT
AS
BEGIN
INSERT INTO Reel_table (reelnr, num, use, flag)
SELECT
reelnr,
num,
use,
flag
FROM
INSERTED
END
对于删除:
CREATE TRIGGER TR_AUDIT_Delete
ON Product
FOR DELETED
AS
BEGIN
INSERT INTO Reel_table (reelnr, num, use, flag)
SELECT
reelnr,
num,
use,
flag
FROM
DELETED
END
注意: 我不知道这三个 reelnr在哪里,使用标志值 所以,请根据您的需要进行修改。
这是我们通常使用的触发器的格式。 您也可以使用单个触发器来完成此操作 我不知道你的具体要求是什么 如果您只想通过单个Trigger实现,那么您可以参考以下链接: Refer