sqlserver的插入insert,更新 update触发器示例

    最近因为需要些sqlserver的触发器,因为毕业过后就没有接触过。头大,不过经过下面文章的阅读后,自 己左右思考,不断尝试,终于写到了符合自己的插入跟更新的触发器了。

点击参考文章链接
因为一个中间表老是插入有字段为空,因为是外部系统webservice塞数据给我们,我们是从这个表哪数据同步
老是同步失败,让外部公司改,他要收钱,气的我马上触发器搞起。

触发器插入 表

如果表eEmployee插入数据的ename字段为空或者为NULL 则根据key eid跟badge进行更新插入ename只为“–”

USE [OA_Interface] ---sqlserver数据库
GO
/****** Object:  Trigger [dbo].[insertename]    Script Date: 2023/2/2 15:31:18 ******/
SET ANSI_NULLS ON   
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create trigger [dbo].[insertename] ---触发器名称
   on [dbo].[eEmployee] ---那个表触发
  after insert  --插入后再触发
  as
 
BEGIN
    SET NOCOUNT ON;
	 DECLARE @eid int  --定义变量
	 DECLARE @Badge VARCHAR (100)
     DECLARE @ename VARCHAR (200)  --定义变量
   select @eid=eid,@Badge=Badge,@ename=ename
    FROM  inserted     ---特定的插入临时表系统自带有的
    --变量赋值 ,找到 对应更新的那一行。
  if (@ename='' or @ename is null)
    BEGIN 
    update [dbo].eEmployee  set @ename='--' where eid=@eid and Badge=@Badge  
	end
end 

2.更新触发器

USE [OA_Interface] ---sqlserver数据库
GO
/****** Object:  Trigger [dbo].[insertename]    Script Date: 2023/2/2 15:31:18 ******/
SET ANSI_NULLS ON   
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create trigger [dbo].[updatetename] ---触发器名称
   on [dbo].[eEmployee] ---那个表触发
  after update--更新后再触发
  as
 
BEGIN
    SET NOCOUNT ON;
	 DECLARE @eid int  --定义变量
	 DECLARE @Badge VARCHAR (100)
     DECLARE @ename VARCHAR (200)  --定义变量
   select @eid=eid,@Badge=Badge,@ename=ename
    FROM  inserted     ---特定的插入临时表系统自带有的
    --变量赋值 ,找到 对应更新的那一行。
  if (@ename='' or @ename is null)
    BEGIN 
    update [dbo].eEmployee  set @ename='--' where eid=@eid and Badge=@Badge  
	end
end 

链接: link


版权声明:本文为weixin_40620651原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。