我有一个名为InspectionsReview
的表:
CREATE TABLE InspectionsReview
(
ID int NOT NULL AUTO_INCREMENT,
InspectionItemId int,
SiteId int,
ObjectId int,
DateReview DATETIME,
PRIMARY KEY (ID)
);
表格如何显示:
+----+------------------+--------+-----------+--------------+
| ID | InspectionItemId | SiteId | ObjectId | DateReview |
+----+------------------+--------+-----------+--------------+
| 1 | 3 | 3 | 3045 | 20-05-2016 |
| 2 | 5 | 45 | 3025 | 01-03-2016 |
| 3 | 4 | 63 | 3098 | 05-05-2016 |
| 4 | 5 | 5 | 3041 | 03-04-2016 |
| 5 | 3 | 97 | 3092 | 22-02-2016 |
| 6 | 1 | 22 | 3086 | 24-11-2016 |
| 7 | 9 | 24 | 3085 | 15-12-2016 |
+----+------------------+--------+-----------+--------------+
我需要编写在将新行插入表之前进行检查的触发器,如果该表已经具有列值为'ObjectId'且'DateReview'的行等于必须插入的行的列值,如果它相等,我需要获取退出行的ID并将触发变量称为duplicate
。
例如,如果必须插入的新行是:
INSERT INTO InspectionsReview (InspectionItemId, SiteId, ObjectId, DateReview)]
VALUES (4, 63, 3098, '05-05-2016');
SQL Server触发器中的重复变量必须等于3.
因为InspectionsReview
表中的行ID = 3,ObjectId
和DateReview
值与必须插入的新行相同。我该如何实现呢?