1

私は2つのテーブルを持っています:

テーブル製品

ProductID     ProductName      CategoryName    Price
102           keyboard         PC parts        800
103           mouse            PC parts        900

テーブルカテゴリ

CategoryID   CategoryName
981          PC parts

カテゴリを削除した場合、トリガーを使用してその下の製品を自動的に削除するにはどうすればよいですか...

4

2 に答える 2

3

実際には、フラグが設定されたFOREIGN KEY制約をTrigger作成する唯一の方法です。DELETE CASCADE

CREATE TABLE Category
(
    CategoryID   INT,
    Categoryname VARCHAR(50),
    CONSTRAINT tb_pk PRIMARY KEY (CategoryID),
    CONSTRAINT tb_uq UNIQUE (Categoryname)
)
GO

CREATE TABLE Product
(
    ProductID    INT,
    ProductName  VARCHAR(50)  ,  
    CategoryID   INT ,
    Price        DECIMAL(10,2),
    CONSTRAINT p_pk PRIMARY KEY (ProductID),
    CONSTRAINT p_uq UNIQUE (ProductName),
    CONSTRAINT p_fk FOREIGN KEY (CategoryID)
         REFERENCES Category(CategoryID) ON DELETE CASCADE
)
GO

テーブルの一部を削除しようとするとCategory、テーブルがテーブルに依存しているCategoryため、子行が自動的に削除されますProductCategory

于 2012-11-12T02:13:40.453 に答える
0

on delete cascade を使用して、両方のテーブルからデータを削除できます。

于 2012-11-12T09:52:06.677 に答える