SQL server 触发器写法案例
以下是一个简单的SQL Server触发器的写法案例:
CREATE TRIGGER trg_UpdateProduct
ON dbo.Products
AFTER UPDATE
AS
BEGIN
IF UPDATE(Price)
BEGIN
-- 记录更新前的价格和更新后的价格
DECLARE @OldPrice DECIMAL(10,2), @NewPrice DECIMAL(10,2)
SELECT @OldPrice = Price FROM deleted
SELECT @NewPrice = Price FROM inserted
-- 插入一条日志记录
INSERT INTO dbo.ProductLogs (ProductId, OldPrice, NewPrice, UpdateDate)
SELECT id, @OldPrice, @NewPrice, GETDATE()
FROM inserted
END
END
上面的案例是一个在dbo.Products表上创建的触发器。该触发器在更新操作之后触发。如果更新了Price字段,则会记录更新前后的价格信息,并插入一条日志记录到dbo.ProductLogs表中。
在触发器的代码中,使用了INSERTED和DELETED这两个临时表。INSERTED表包含了更新后的数据,而DELETED表包含了更新前的数据。通过从这两个临时表中选择相应的字段,可以获取到更新前后的数据。
注意,上面的代码只是一个简单的示例,实际应用中可能需要根据具体需求进行修改和优化
原文地址: http://www.cveoy.top/t/topic/h9FS 著作权归作者所有。请勿转载和采集!