Sql-Server触发器,根据条件匹配另一个表中的字段

Posted 沫丶灬沫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sql-Server触发器,根据条件匹配另一个表中的字段相关的知识,希望对你有一定的参考价值。

USE [CDM]
GO
/****** Object:  Trigger [dbo].[UpdateAkisFlight]    Script Date: 2018/6/14 16:43:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER [dbo].[UpdateAkisFlight]
   ON  [dbo].[FlightWarnTime]
   FOR INSERT,DELETE
AS 
BEGIN
if(exists(select 1 from inserted) and not exists(select 1 from deleted))
    begin
      declare @TwoCode nvarchar(50),@FlightNum  nvarchar(50),@ThreeCode  nvarchar(50),@Etd datetime,@FlightId  int,@Calsign  nvarchar(50),@ID int
       select @TwoCode=TwoCode,@FlightNum=FlightNumber,@Etd = Etd,@ID = Id from inserted 
       select @ThreeCode=Code3  from Company  with(nolock)  where Code2=@TwoCode
       if @ThreeCode is not null
           begin
             set @[email protected]+@FlightNum
             if @FlightNum is not null
                begin
                   update [dbo].[FlightWarnTime] set [email protected] where Id=@ID
                end
             if @Etd is not null
               begin 
                 select  @FlightId=FlightId from [AKIS].[dbo].[ValidFlight]  with(nolock)  where [email protected]  and  ABS(DATEDIFF(MINUTE,Etd,@Etd)) <=60  and DepAddrName=ZHCC
               end
             if @FlightId is not null
               begin      
                  update [dbo].[FlightWarnTime] set [email protected] where Id=@ID
               end
           end
    end
END

 

以上是关于Sql-Server触发器,根据条件匹配另一个表中的字段的主要内容,如果未能解决你的问题,请参考以下文章

从与另一个表中的条件匹配的表中删除

如果存在匹配值,则从另一个表中检索数据 - 否则基于第一个连接条件返回

Mysql - 创建触发器以根据插入另一个表中的行插入新行

如何编写一个触发器,根据在另一个表中采取的操作来更新一个表?

如何根据laravel控制器中另一个表中保存的数据创建触发器以填充数据库中的表

根据另一个表中的条件显示表中的列