SQL Server のトリガー構築と最適化
Florin Angelescu
Instructor
INSERT、UPDATE、DELETE で使用この例で使用する Products テーブルの出力:
| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple | 2.00 | USD | 25000 | kg |
| Apricot | 1.55 | USD | 2500 | kg |
| Avocado | 3.00 | USD | 1000 | kg |
| Banana | 1.80 | USD | 35000 | kg |
ProductsDELETETrackRetiredProductsProducts テーブルから行が削除されたら…
その行の必要情報を RetiredProducts に保存します。
| Product | Price | Currency | Quantity | Measure |
|---------|-------|----------|----------|---------|
| Apple | 2.00 | USD | 25000 | kg |
| Apricot | 1.55 | USD | 2500 | kg | X
| Avocado | 3.00 | USD | 1000 | kg |
| Banana | 1.80 | USD | 35000 | kg |
| Product | Measure | RemovalDate |
|---------|---------|-------------|
| Apricot | kg | 2019-04-19 |
CREATE TRIGGER TrackRetiredProductsON ProductsAFTER DELETEAS INSERT INTO RetiredProducts (Product, Measure) SELECT Product, Measure FROM deleted;
| 特別なテーブル | INSERT | UPDATE | DELETE |
|---|---|---|---|
| inserted | 新しい行 | 新しい行 | N/A |
| deleted | N/A | 更新後の行 | 削除された行 |
CREATE TRIGGER TrackRetiredProducts
ON Products
AFTER DELETE
AS
INSERT INTO RetiredProducts (Product, Measure)
SELECT Product, Measure
FROM deleted;
SQL Server のトリガー構築と最適化