问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

什么是触发器(trigger)? 触发器有什么作用?

发布网友 发布时间:2022-04-23 01:55

我来回答

2个回答

懂视网 时间:2022-04-08 13:24

/****** Object: Trigger [dbo].[部门_Delete] Script Date: 2015/8/31 16:41:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <Author,Ammy,Name> -- Create date: <Create Date,,> -- Description: <Description,显示一次操作触发器修改了多少条记录,> --因为每个操作类型在一次操作时,对一个触发器只激活一次,但是运行的操作可能更新或删除了10条记录, --Inserted表和Deleted表里会有10条记录,用系统变量@@ROWCOUNT 可以得知上一次操作所更改的记录数 -- ============================================= CREATE TRIGGER [dbo].[部门_Delete] ON [test].[dbo].[部门表] AFTER DELETE AS BEGIN PRINT ‘您此次删除了‘+CAST(@@ROWCOUNT AS VARCHAR)+‘条记录‘ END GO

部门表_插入:

 

USE [test]
GO

/****** Object: Trigger [dbo].[部门_Insert] Script Date: 2015/8/31 16:42:29 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author: <Author,Ammy,Name>
-- Create date: <Create Date,2015/08/19,>
-- Description: <Description,部门表插入时发出提示:又添加了一种产品,并向日志表插入一条记录>
-- =============================================
CREATE TRIGGER [dbo].[部门_Insert]
ON [dbo].[部门表]
AFTER INSERT
AS
BEGIN
 DECLARE @事件部门名称 NVARCHAR(50)

 SELECT @事件部门名称=部门名称 FROM inserted

 IF(SELECT LEN(电话号码) FROM inserted )<>11
 BEGIN
  PRINT‘电话号码位数必须是11位‘
  ROLLBACK TRANSACTION
 END
 ELSE
 BEGIN
  print ‘又添加了一个部门‘
  INSERT INTO test.dbo.日志表(事件名,事件人,事件时间)VALUES(‘添加新部门:‘+@事件部门名称,‘admin‘,GETDATE());
  --设置此TRIGGER的嵌套类型为true,如果在 dbo.日志表 上建立触发器,会触发激活dbo.日志表_Insert 触发器
 END

END

GO

部门表_更新:

USE [test]
GO

/****** Object: Trigger [dbo].[部门表_只能修改部门编号] Script Date: 2015/8/31 16:43:17 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author: <Author,Ammy,Name>
-- Create date: <Create Date,2015-08-20,>
-- Description: <Description,用update(字段名),完成只能修改某字段的触发器>
-- =============================================
CREATE TRIGGER [dbo].[部门表_只能修改部门编号]
ON [dbo].[部门表]
Instead of UPDATE
AS
BEGIN
 SET NOCOUNT ON;
 IF UPDATE(部门编号)
 BEGIN
  DECLARE @部门编号 NVARCHAR(20),
   @部门名称 NVARCHAR(20),
   @部门职责 Nvarchar(20)

  SET @部门编号=(SELECT 部门编号 FROM inserted)
  SET @部门名称=(SELECT 部门名称 FROM inserted)
  SET @部门职责 =(SELECT 部门职责 FROM inserted)

  UPDATE 部门表 SET 部门编号=@部门编号
  WHERE 部门名称=@部门名称--AND 部门编号=@部门编号 AND @部门职责=@部门职责
  --这种写法很不好,因为只能操作的语句只能按这种修改才起作用
 END 
 ELSE
 BEGIN 
  PRINT ‘只能修改部门编号‘
  RAISERROR(‘除了部门编号之外的字段都不允许修改‘,16,5)
  --PRINT 输出自定义信息,但是只能在查询编辑器窗格中运行SQL语句才能看到这些自定义的信息,
  --而其他的前端应用程序都不会显示这些自定义的信息
 END
END


GO

日志表触发器:

USE [test]
GO

/****** Object: Trigger [dbo].[日志表_Insert] Script Date: 2015/8/31 16:44:11 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE TRIGGER [dbo].[日志表_Insert]
ON [test].[dbo].[日志表]
AFTER INSERT
AS 
BEGIN
 PRINT‘数据库又有记录变动了‘
END
 

GO

 

数据库触发器_trigger

标签:

热心网友 时间:2022-04-08 10:32

触发器是数据库中由一个时间触发的特殊的存储过程,他不是由程序条用也不是手工启动的。触发器的执行可以由对一个表的insert,delete, update等操作来触发,触发器经常用于加强数据的完整性约束和业务规则等等。触发器可以对其他表进行查询,也可以包含复杂的SQL语句。他么主要用于强*从复杂的业务规则或者要求。例如可以利用触发器根据客户当前的帐户状态来控制是否允许插入新的订单。触发器也可以用于强制引用完整性,以便在多个表中添加,删除或者更新数据时,保留这些表之间的关系。创建触发器的SQL语法:DELIMITER |CREATE TRIGGER `<databaseName`.`<triggerName`< [ BEFORE | AFTER ] < [ INSERT | UPDATE | DELETE ]ON <tableName
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 触发器的应用和用法? 数据库中的“触发器”是什么意思? 触发器到底是什么意思? 触发器的是什么东东,由什么组成 触发器是什么? 触发器是什么意思?在电工里起什么作用? 半年时间可以做多少事情 男朋友说我们性格不合,给我半年时间改变 被男友抛弃……半年时间 要怎么改变自己外在美和内在美!感觉像变了个人一样。 最多半年时间改变一切 老婆答应给我半年时间改变 半年的时间改变了自己 用半年的时间真的可以变漂亮变白吗 ?(我是学生没有太多的钱去做)要用什么方法才可以变漂亮? 我女朋友和我分手了,说给我半年时间让我改变,等时间到了,如果我真的改变了就马上在一起. 半年的时间能改变一个人吗? 半年时间可以改变性格吗?我想变得成熟点,怎么做? 半年的时间能否改变一个人? 半年时间可以做到什么呢? 坚持在健身房锻炼半年,到底能有多大改变? 半年的时间真的可以改变一个人么? Excel 里删除背景在哪里? excel图片删除背景在哪里? 怎样在excel中抠除图片背景 excel调整里没有删除背景,怎么能把删除背景健调出来 excel2007如何去掉图片底色 steam上有什么好玩的游戏吗? Steam上有哪些必买的游戏? steam上有哪些风景好的游戏? steam上有使命召唤吗 盘点steam上有哪些好玩不贵的游戏? steam上面有没有什么好玩的,免费的,自由度高的,我这个配置能玩的游戏... Steam上有什么耐玩的游戏? steam上现在有多少游戏 满天星多少钱一束,普通花店有卖吗 满天星一束需要多少钱? 在花店中一束满天星花要多少元? iPhone 6sMKQQ2VC/A 是哪一个国家 人之将死其言也善 是什么意思?为什么有很多人说: 我死都不会放过你? 十一朵玫瑰花加一朵百合花和满天星装束在一起多少钱? 求【死也不会放过你】全文加完整番外