SQL SERVER觸發器中判斷是觸發的新增,修改,還是刪除,及使用方法


多表間的新增,修改,刪除觸發器事件

判斷方法 

create trigger tgr_ba0
on ba2
after update, delete,insert--這里也能判斷是修改,刪除,還是新增
as
    --修改
    if exists(select 1 from inserted) and exists(select 1 from deleted)
    begin
        insert into log(action) values('updated');--修改
    end
    else if (exists (select 1 from inserted) and not exists (select 1 from deleted))
    begin
        insert into log(action) values('inserted');--新增
    end
    else if (not exists (select 1 from inserted) and exists (select 1 from deleted))
    begin
        insert 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,,>
-- =============================================
CREATE TRIGGER [dbo].[add_lis_sqh]--CREATE新增  ALTER修改
   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 here
 
END

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM