Ayk*_*lik 4 sql t-sql sql-server triggers
我想创建一个用于logging的触发器.所以我需要INSERT,UPDATE或DELETE.ie的事件名称:其中一个语句用于查询执行,我的触发器将触发并开始记录.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER LogBuses
ON Bus_table
AFTER INSERT,DELETE
AS
BEGIN
DECLARE @PlateNo nvarchar(50)
IF INSERT//something like that-INSERTING- DELETING
SELECT @PlateNo=PlateNo from inserted
insert into Logger (EffectedTable,ActionName,EffectDate,EffectedID)
VALUES ('Bus_table','Insert',SYSDATETIME (),@PlateNo);
ELSE IF DELETE
SELECT @PlateNo=PlateNo from deleted
insert into Logger (EffectedTable,ActionName,EffectDate,EffectedID) VALUES ('Bus_table','Insert',SYSDATETIME (),@PlateNo);
Run Code Online (Sandbox Code Playgroud)
结束了
您使用inserted和deleted表.如果仅inserted填充表,则插入它,如果仅填充表则删除,如果deleted填充了两个表则更新.使用if exists (select 1 from inserted)测试.
if exists (select 1 from inserted) and exists (select 1 from deleted)
--update
else if exists (select 1 from inserted)
--insert
else if exists (select 1 from deleted)
--delete
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4698 次 |
| 最近记录: |