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

本文介绍了如何在SQLServer中使用触发器来处理数据插入和更新。当eEmployee表中有ename字段为空或NULL时,通过触发器自动将ename设置为“–”。此外,还提到了一个更新触发器的示例。
    最近因为需要些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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值