SQLserver 如何给表新建触发器


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

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

SQLserver 如何给表新建触发器

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » SQLserver 如何给表新建触发器
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏