sql数据库update触发器
时间: 2023-10-28 21:48:58 浏览: 92
SQL Server 触发器 表的特定字段更新时,触发Update触发器
SQL数据库中的Update触发器是一种特殊的存储过程,它会在表中的数据被更新时自动执行。Update触发器可以用来实现一些特定的业务逻辑,如记录修改日志、更新相关数据等。以下是一个简单的Update触发器的示例:
CREATE TRIGGER trg_update_customer
ON dbo.Customer
FOR UPDATE
AS
BEGIN
-- 获取更新前和更新后的数据
DECLARE @OldData TABLE (CustomerId INT, Name VARCHAR(50), Address VARCHAR(100))
DECLARE @NewData TABLE (CustomerId INT, Name VARCHAR(50), Address VARCHAR(100))
INSERT INTO @OldData
SELECT CustomerId, Name, Address
FROM deleted
INSERT INTO @NewData
SELECT CustomerId, Name, Address
FROM inserted
-- 记录修改日志
INSERT INTO dbo.CustomerLog (CustomerId, Name, Address, Operation)
SELECT o.CustomerId, o.Name, o.Address, 'Update'
FROM @OldData o
INNER JOIN @NewData n ON n.CustomerId = o.CustomerId
WHERE o.Name <> n.Name OR o.Address <> n.Address
-- 更新相关数据
UPDATE dbo.Order
SET CustomerName = i.Name
FROM inserted i
WHERE Order.CustomerId = i.CustomerId
END
在这个示例中,我们定义了一个Update触发器,它会在dbo.Customer表中的数据被更新时自动执行。在触发器中,我们首先获取更新前和更新后的数据,并记录修改日志和更新相关数据。通过这个例子,你可以了解Update触发器的基本用法。
阅读全文