-
Notifications
You must be signed in to change notification settings - Fork 0
/
Triggers.sql
118 lines (93 loc) · 2.22 KB
/
Triggers.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
USE bib;
GO
IF OBJECT_ID('DeleteBorrowing', 'TR') IS NOT NULL
DROP TRIGGER DeleteBorrowing;
GO
CREATE TRIGGER DeleteBorrowing
ON Borrowings
INSTEAD OF DELETE
AS
DELETE FROM Fines
WHERE BorrowDate IN (SELECT BorrowDate FROM DELETED)
AND UserID IN (SELECT UserID FROM DELETED)
AND ItemID IN (SELECT ItemID FROM DELETED)
DELETE FROM Borrowings
WHERE BorrowDate IN (SELECT BorrowDate FROM DELETED)
AND UserID IN (SELECT UserID FROM DELETED)
AND ItemID IN (SELECT ItemID FROM DELETED)
GO
--SELECT * FROM Borrowings
--SELECT * FROM Fines
--DELETE FROM Borrowings
--WHERE BorrowDate = '2022-11-13'
--SELECT * FROM Borrowings
--SELECT * FROM Fines
GO
IF OBJECT_ID('DeleteUser', 'TR') IS NOT NULL
DROP TRIGGER DeleteUser;
GO
CREATE TRIGGER DeleteUser
ON Users
INSTEAD OF DELETE
AS
DELETE FROM Borrowings
WHERE UserID IN (SELECT UserID FROM DELETED)
DELETE FROM Users
WHERE UserID IN (SELECT UserID FROM DELETED)
GO
--SELECT * FROM Borrowings
--SELECT * FROM Fines
--SELECT * FROM Users
--DELETE FROM Users WHERE UserID = 2
--SELECT * FROM Borrowings
--SELECT * FROM Fines
--SELECT * FROM Users
GO
IF OBJECT_ID('DeleteBook', 'TR') IS NOT NULL
DROP TRIGGER DeleteBook;
GO
CREATE TRIGGER DeleteBook
ON Books
INSTEAD OF DELETE
AS
DELETE FROM Authors
WHERE ItemID IN (SELECT ItemID FROM DELETED)
DELETE FROM Redactors
WHERE ItemID IN (SELECT ItemID FROM DELETED)
DELETE FROM Categories
WHERE ItemID IN (SELECT ItemID FROM DELETED)
DELETE FROM Borrowings
WHERE ItemID IN (SELECT ItemID FROM DELETED)
DELETE FROM Books
WHERE ItemID IN (SELECT ItemID FROM DELETED)
GO
GO
IF OBJECT_ID('DeleteOther', 'TR') IS NOT NULL
DROP TRIGGER DeleteOther;
GO
CREATE TRIGGER DeleteOther
ON Other
INSTEAD OF DELETE
AS
DELETE FROM Categories
WHERE ItemID IN (SELECT ItemID FROM DELETED)
DELETE FROM Borrowings
WHERE ItemID IN (SELECT ItemID FROM DELETED)
DELETE FROM Books
WHERE ItemID IN (SELECT ItemID FROM DELETED)
GO
GO
IF OBJECT_ID('DeleteItem', 'TR') IS NOT NULL
DROP TRIGGER DeleteItem;
GO
CREATE TRIGGER DeleteItem
ON Items
INSTEAD OF DELETE
AS
DELETE FROM Books
WHERE ItemID IN (SELECT ItemID FROM DELETED)
DELETE FROM Other
WHERE ItemID IN (SELECT ItemID FROM DELETED)
DELETE FROM Items
WHERE ItemID IN (SELECT ItemID FROM DELETED)
GO