-1
我有這樣的表稱爲InspectionsReview
:故障排除實施SQL服務器觸發
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
的值與新行中必須插入的值相同。我怎樣才能實現這個?
什麼是id字段的數據類型?是它的身份? – TheGameiswar
這部分也不清楚..「我想獲得該行的ID並把它放到觸發變量稱爲複製」你可以請示出樣本預期的輸出 – TheGameiswar
對於這部分「我需要編寫觸發器,檢查之前新行插入到Inspections Review「,並且這個」如果是,我想獲取該行的ID並將其放入觸發變量稱爲重複「。如果您在插入前執行檢查**,那麼如何獲取要插入另一個表的ID? – DVT