创建触发器,实现当修改商品表中某种商品编号时,对应的购买信息表中的商品编号也要修改
时间: 2024-12-10 14:47:04 浏览: 9
SQL查询出表、存储过程、触发器的创建时间和最后修改时间示例
5星 · 资源好评率100%
创建触发器的目的是为了在特定数据库操作(如修改商品表中的商品编号`ProductID`)发生时,自动同步相关的购买信息表(通常假设是`PurchaseInfo`)。这个例子描述的是一个`AFTER UPDATE`类型的触发器,其结构大致如下:
```sql
CREATE TRIGGER tr_UpdateProductID
ON Product
AFTER UPDATE
AS
BEGIN
IF (SELECT EXISTS (SELECT * FROM inserted WHERE ProductID = inserted.ProductID)) -- 检查是否真的有修改
BEGIN
UPDATE PurchaseInfo
SET ProductID = inserted.ProductID
FROM PurchaseInfo
INNER JOIN inserted ON PurchaseInfo.ProductID = inserted.ProductID AND inserted.ProductID IN (SELECT ProductID FROM deleted) -- 更新旧的商品编号到新的
WHERE PurchaseInfo.ProductID IN (SELECT ProductID FROM deleted); -- 只对被修改过的商品编号生效
END
END;
```
当你在`Product`表上执行一个更新操作,如果商品编号被修改了,这个触发器会检查是否有对应更改,并更新`PurchaseInfo`表中与之相关联的商品编号。
阅读全文