当前位置: 代码迷 >> 综合 >> SQL SERVER触发器中判断是触发的新增,修改,还是删除,及使用方法
  详细解决方案

SQL SERVER触发器中判断是触发的新增,修改,还是删除,及使用方法

热度:47   发布时间:2024-02-24 08:20:00.0

多表间的新增,修改,删除触发器事件

判断方法 

create trigger tgr_ba0
on ba2
after update, delete
as--修改if exists(select 1 from inserted) and exists(select 1 from deleted)begininsert into log(action) values('updated');--修改endelse if (exists (select 1 from inserted) and not exists (select 1 from deleted))begininsert into log(action) values('inserted');--新增endelse if (not exists (select 1 from inserted) and exists (select 1 from deleted))begininsert into log(action) values('deleted');--删除end
go

使用方法

USE [SQLHIS]
GO
/****** Object:  Trigger [dbo].[add_lis_sqh]    Script Date: 10/01/2020 08:43:17 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER TRIGGER [dbo].[add_lis_sqh]ON  [dbo].[L_LIS_SQD] AFTER    INSERT,DELETE,UPDATE
AS 
BEGIN
---新增加if(exists(select 1 from inserted) and not exists(select 1 from deleted))begin  INSERT  INTO SQLHIS.dbo.lis_sqh ([sqh],[sqsj]) select [DOCTREQUESTNO],[REQUESTTIME]FROM Inserted AS A---SET NOCOUNT ON;end -- SET NOCOUNT ON added to prevent extra result sets from-- interfering with SELECT statements.SET NOCOUNT ON;--end-- Insert statements for trigger hereEND

 

  相关解决方案