· 6 years ago · Jul 12, 2019, 02:38 PM
1IF NOT EXISTS (SELECT * FROM inserted) AND EXISTS (SELECT * FROM deleted)
2 BEGIN
3 DELETE murpl
4 FROM [Audits].[dbo].[MobileUsageReportPackageLog] murpl
5 JOIN deleted del ON murpl.[UserId] = del.[UserId]
6 JOIN deleted del2 ON murpl.DeviceId = del2.[DeviceId]
7 JOIN deleted del3 ON murpl.[PackageNumber] = del3.[PackageNumber]
8
9CREATE TABLE A
10(
11 ID1 INT,
12 ID2 INT,
13 ID3 INT,
14 FOO INT,
15 BAR INT,
16 PRIMARY KEY (ID1, ID2, ID3)
17);
18
19CREATE TABLE B
20(
21 ID1 INT,
22 ID2 INT,
23 ID3 INT,
24 FOO INT,
25 BAR INT,
26 PRIMARY KEY (ID1, ID2, ID3)
27);
28GO
29
30CREATE TRIGGER TRG_A_INSDEL
31ON [A]
32AFTER INSERT, DELETE
33AS
34BEGIN
35
36 INSERT INTO B
37 SELECT * FROM inserted;
38
39 DELETE B
40 FROM
41 B
42 JOIN
43 deleted d
44 ON d.ID1 = B.ID1
45 AND d.ID2 = B.ID2
46 AND d.ID2 = B.ID2;
47END
48GO
49
50CREATE TRIGGER TRG_A_INSDEL
51ON [A]
52AFTER INSERT, DELETE
53AS
54BEGIN
55
56 INSERT INTO B
57 SELECT * FROM inserted;
58
59 DELETE B
60 FROM
61 B
62 JOIN
63 deleted d
64 ON d.ID1 = B.ID1
65 AND d.ID2 = B.ID2
66 AND d.ID2 = B.ID2;
67END
68GO
69
70INSERT INTO A VALUES (1, 1, 1, 1, 1);
71INSERT INTO A VALUES (2, 2, 2, 2, 2);
72INSERT INTO A VALUES (3, 3, 3, 3, 3);
73GO
74
75INSERT INTO A VALUES (1, 1, 1, 1, 1);
76INSERT INTO A VALUES (2, 2, 2, 2, 2);
77INSERT INTO A VALUES (3, 3, 3, 3, 3);
78GO
79
80SELECT * FROM B;
81GO
82
83SELECT * FROM B;
84GO
85
86DELETE FROM A WHERE ID1 >= 2;
87GO
88
89DELETE FROM A WHERE ID1 >= 2;
90GO
91
92SELECT * FROM B;
93GO
94
95SELECT * FROM B;
96GO