实现SQL Server触发器的故障排除

时间:2016-08-13 11:54:14

标签: sql-server tsql triggers

我有一个名为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,ObjectIdDateReview值与必须插入的新行相同。我该如何实现呢?

0 个答案:

没有答案