SQLserver 如何给表新建触发器

   日期:2020-09-28     浏览:99    评论:0    
核心提示:SQLserver 如何给表新建触发器一. 需要数据库hzppb(汉字拼音表)和Xsxxb(学生信息表)二. 对Xsxxb进行更新时的触发器SQLSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TRIGGER update_xmsx_after_update_xsxxb_xm ON dbo.Xsxxb AFTER UPDATE --在更新数据时对表中数据进行更新AS BEGIN IF UPDATE(xm) --如

SQLserver 如何给表新建触发器

一. 需要数据库hzppb(汉字拼音表)和Xsxxb(学生信息表)

二. 对Xsxxb进行更新时的触发器

SQL
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER update_xmsx_after_update_xsxxb_xm 
   ON  dbo.Xsxxb 
   AFTER UPDATE --在更新数据时对表中数据进行更新
AS 
BEGIN
	IF UPDATE(xm) --如果表中的xm字段发生了更新,才执行对表中xmsx字段的更新
	BEGIN
		-- SET NOCOUNT ON added to prevent extra result sets from
		-- interfering with SELECt statements.
		SET NOCOUNT ON;
		DECLARE @xsid INT,@xm VARCHAR(50); --定义变量 ,@xm 姓名 可变字符串长度为五十 @xsid 学生ID 整型变量
		SELECT @xsid=xsid,@xm=xm FROM Inserted;--在执行插入的操作后,在Inserted的临时表中获取xsid和xm,并将其赋给@xsid和@xm
		UPDATe Xsxxb SET xmsx=dbo.PysxCx(@xm) WHERe xsid=@xsid;-- 更新Xsxxb中的数据,使用函数PysxCx在表hzpyb中查询@xm对应的xmsx(姓名缩写),
		-- 并当@xsid 和Xsxxb表中的xsid相同时,更新对应的xmsx
		-- Insert statements for trigger here
	END
	else
		print '没有更新姓名,不对表的xmsx进行更新'
END
GO

三. 对表Xsxxb进行更新时的触发器

USE SSMSTest --使用的数据库名称
go
set ANSI_NULLS ON
GO
Set QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER Update_xmsx_after_insert_xsxxb
	ON dbo.Xsxxb
	AFTER INSERT --在插入数据后对Xsxxb进行更新
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @xm VARCHAR(50),@xsid INT; --定义变量,@xm 姓名 可变字符串长度为五十 @xsid 学生ID 整型变量
	SELECT @xsid=xsid,@xm=xm FROM Inserted; --在执行插入的操作后,在Inserted的临时表中获取xsid和xm,并将其赋给@xsid和@xm
	UPDATE Xsxxb SET xmsx=dbo.PysxCx(@xm) where xsid=@xsid; -- 更新Xsxxb中的数据,使用函数PysxCx在表hzpyb中查询@xm对应的xmsx(姓名缩写),
	-- 并当@xsid 和Xsxxb表中的xsid相同时,更新对应的xmsx
END

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服