我有两张桌子:
表产品
ProductID ProductName CategoryName Price
102 keyboard PC parts 800
103 mouse PC parts 900
表类别
CategoryID CategoryName
981 PC parts
如果我删除某个类别,我该如何使用触发器...
自动删除其下的产品答案 0 :(得分:3)
实际上你可能不会在这里使用Trigger
,这是你创建 FOREIGN KEY 约束的唯一方法,该约束有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
时,它会自动删除其子行,因为表Product
依赖于表Category
答案 1 :(得分:0)
您可以使用删除级联来删除两个表中的数据。