• 创建触发器


    需求:表A中插入/更新数据后,表B中也插入/更新当前数据。

    插入

    USE [库名称]
    GO
    /****** Object:  Trigger 触发器名称  Script Date: 2020/12/30 11:15:41 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER trigger 触发器名称 on 表A for insert
    as
    SET XACT_ABORT ON
    DECLARE @startTime datetime
    DECLARE @endTime datetime
    set @startTime = dateadd(ms,0,DATEADD(dd, DATEDIFF(dd,0,getdate()), 0))
    set @endTime = dateadd(ms,-3,DATEADD(dd, DATEDIFF(dd,-1,getdate()), 0))
    insert into 表B
    select  [F_PayID]
          ,[F_DeviceID]
          ,[F_CompanyID]
          ,[F_PayCode]
          ,[F_BillCode]
          ,[F_ScanType]
          ,[F_PayType]
          ,[F_PayStatus]
          ,[F_PayAmount]
          ,[F_Purpose]
          ,[F_PaySource]
          ,[F_PayTime]
          ,[F_RegisterAmount]
    from inserted
    where F_PayID not in (select F_PayID from 表B)
    and F_PayTime >=@startTime and F_PayTime <=@endTime
    if @@error<>0
    begin
        rollback
        raiserror('cnanot change',1,2) with seterror
        return
    end
    

      更新

    USE 数据库名称
    GO
    /****** Object:  Trigger 触发器名称   Script Date: 2020/12/30 11:21:25 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER TRIGGER 触发器名称
    ON 表A
    AFTER UPDATE
    AS
    
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
    
        -- Insert statements for trigger here
    	declare 
                   @F_PayID varchar(50), 
                   @F_PayType int,
                   @F_PayAmount decimal(18,2),
                   @F_PayTime datetime,
    	       @Count int;
    
    	 select 
    	  @F_PayID =F_PayID,
    	  @F_PayType = F_PayType,
    	  @F_PayAmount=F_PayAmount,
    	  @F_PayTime = F_PayTime
    	  from inserted;
    
    --如果表B中存在当前数据,则更新表B中的数据,若没有则更新表C中的数据 select @Count = count(F_PayID) from 表B where F_PayID=@F_PayID ; if @Count>0 update 表B set F_PayType=@F_PayType ,F_PayTime = @F_PayTime ,F_PayAmount = @F_PayAmount where F_PayID=@F_PayID ; else update 表C set F_PayType=@F_PayType ,F_PayTime = @F_PayTime ,F_PayAmount = @F_PayAmount where F_PayID=@F_PayID ; END

      

  • 相关阅读:
    JSON
    Chromium 修改chrome.exe
    Chromium 修改任务管理器显示的Chromium
    winhttp get请求https
    string wstring 互转
    浏览器指纹在线监测获取网址
    咕了的构造题单总结
    Git 常用命令总结
    C# 网络地址是否有效
    IDEA如何从断点里获取对象所有数据
  • 原文地址:https://www.cnblogs.com/syeacfpl/p/14210486.html
Copyright © 2020-2023  润新知