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

数据库中的“触发器”是什么意思?

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

我来回答

4个回答

懂视网 时间:2022-04-30 14:21

/****** 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-30 11:29

在SQL中,名词触发器指“在数据库中为响应一个特殊表格中的某些事件而自动执行的程序代码。”(Wikipedia)说得简单一些,它是在一个特殊的数据库事件,如INSERT或DELETE发生时,自动激活的一段代码。触发器可方便地用于日志记录、对单个表格到其他链接式表格进行自动的“层叠式”更改、或保证对表格关系进行自动更新。当一个新整数值增加到数据库域中时,自动更新运行的总数的代码段是一个触发器。自动记录对一个特殊数据库表格所作更改的SQL命令块也是一个触发器实例。
参考:
http://www.nmzol.com/ns/2007/200705/2007-05-05/ns_20070505214010_16672.html

热心网友 时间:2022-04-30 12:47

建议不要使用系统的关键字把id该为其他的字段名
create
trigger
yx
on
评论表
after
insert
as
declare
@n
bigint
declare
@no
varchar(50)------/*商品id是字符型的*/
select
@no=商品id
from
inserted
select
@n=评论人数
from
商品表
where
商品id=@no
update
商品表
set
评论人数=@n+1
where
商品id=@no
我不知道你的表怎么做的所以具体的还是要你自己来改.
有什么不懂,在提出来.
这个是评论次数,不能算是评论人数,一个人可以评论多次而且算数,
如果要统计人数还要在
用户名
上做文章

热心网友 时间:2022-04-30 14:22

触发器的概念:
触发器英文名trigger,是指数据库中为响应一个特殊表格中的某些事件而自动执行的程序代码。
为什么要使用触发器:
触发器通常在进行登录或者对表作修改时触发,可以作为登录验证或者数据监控。换句话说,触发器是用来管理数据库的,很少用来操作数据。比如,我要知道谁在什么时候修改了Test表,修改了什么,就要使用触发器了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 触发器到底是什么意思? 触发器的是什么东东,由什么组成 触发器是什么? 触发器是什么意思?在电工里起什么作用? 半年时间可以做多少事情 男朋友说我们性格不合,给我半年时间改变 被男友抛弃……半年时间 要怎么改变自己外在美和内在美!感觉像变了个人一样。 最多半年时间改变一切 老婆答应给我半年时间改变 半年的时间改变了自己 用半年的时间真的可以变漂亮变白吗 ?(我是学生没有太多的钱去做)要用什么方法才可以变漂亮? 我女朋友和我分手了,说给我半年时间让我改变,等时间到了,如果我真的改变了就马上在一起. 半年的时间能改变一个人吗? 半年时间可以改变性格吗?我想变得成熟点,怎么做? 半年的时间能否改变一个人? 半年时间可以做到什么呢? 坚持在健身房锻炼半年,到底能有多大改变? 半年的时间真的可以改变一个人么? 用半年的时间能否改变一个人? 怎样在半年内改变自己 触发器的应用和用法? 什么是触发器(trigger)? 触发器有什么作用? Excel 里删除背景在哪里? excel图片删除背景在哪里? 怎样在excel中抠除图片背景 excel调整里没有删除背景,怎么能把删除背景健调出来 excel2007如何去掉图片底色 steam上有什么好玩的游戏吗? Steam上有哪些必买的游戏? steam上有哪些风景好的游戏? steam上有使命召唤吗 盘点steam上有哪些好玩不贵的游戏? steam上面有没有什么好玩的,免费的,自由度高的,我这个配置能玩的游戏... Steam上有什么耐玩的游戏? steam上现在有多少游戏 满天星多少钱一束,普通花店有卖吗 满天星一束需要多少钱? 在花店中一束满天星花要多少元? iPhone 6sMKQQ2VC/A 是哪一个国家 人之将死其言也善 是什么意思?为什么有很多人说: 我死都不会放过你?