1
我有以下兩個表:SQL Server的觸發器:重複條目
CREATE TABLE dbo.ExampleForTrig
(
var1 int NOT NULL,
var2 varchar(255) NOT NULL,
var3 varchar(255) NOT NULL,
var4 decimal(12,2) NOT NULL,
);
CREATE TABLE dbo.amended
(
var1 int NOT NULL,
var2 varchar(255) NOT NULL,
var3 varchar(255) NOT NULL,
var4 decimal(12,2) NOT NULL,
vara int NOT NULL,
varb varchar(255) NOT NULL,
varc varchar(255) NOT NULL,
vard decimal(12,2) NOT NULL,
);
與前一些隨機信息。
INSERT INTO dbo.ExampleForTrig (var1, var2, var3, var4)
VALUES ('9', 'Geoff', 'D', '11.23');
INSERT INTO dbo.ExampleForTrig (var1, var2, var3, var4)
VALUES ('9', 'Bill', 'E', '11.23');
INSERT INTO dbo.ExampleForTrig (var1, var2, var3, var4)
VALUES ('9', 'John', 'H', '11.23');
第一個表有一個AFTER UPDATE
觸發入射沿着新的信息到表dbo.amended
經修正的信息。
但是,在觸發器內,存在重複條目的問題。
有時,對於一次更新,觸發器將使用兩個相同的條目填充dbo.amended
。我需要幫助確定錯誤。
CREATE TRIGGER dbo.my_trig
ON dbo.ExampleForTrig
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO dbo.amended (var1, var2, var3, var4, vara, varb, varc, vard)
SELECT
del.var1, del.var2, del.var3, del.var4,
ins.var1, ins.var2, ins.var3, ins.var4
FROM
(SELECT
var1, var2, var3, var4
FROM
deleted) AS del,
(SELECT
var1, var2, var3, var4
FROM
inserted) AS ins;
END;
謝謝你的幫助。非常感激。 – AMorton1989