首先,几个冗长的废话如下:
(1)触发器(触发器)是一种特殊的存储过程。它的
执行不需要显式调用,而引发的一些事件,这是类似于C #事件
处理机制,触发时触发一个或多个相关表的指定数据库的
操作与更新、插入或
删除。
(2)触发器可以包含复杂的SQL语句,这些语句主要用于执行复杂的业务规则或需求。
(3)触发器可以保持数据库的完整性。在执行插入、更新或删除操作时,触发器将根据表和表之间的关系强制执行数据完整性。
U3000 U3000
好了,啰嗦在坚持代码,两个表包含列标记我创造的,他们的关系是1多,与
用户标识符。
然后是一个非常简单的触发器
复制代码代码如下所示:
如果存在(SELECT * FROM sysobjects)
name = 'tr_users_onupdate'and型= TR')
删除触发器tr_users_onupdate
走在这里,
创建一个触发器与存储过程(所有DDL)
先判断是否存在同音触发删除和重建
创建触发器tr_users_onupdate
关于更新的用户
打印用户表已被
修改 去
在上面的代码中,tr_users_onupdate是触发器的名称和用户的表的名称。这个触发效果,打印用户表已被修改,更新时执行的用户表。
嗯,我们可以看到这个触发器的实用性不是很大。接下来,让我们了解两种特殊的表,插入和删除,触发,这两个表主要用于触发。删除的表是用来存储一个拷贝的行有
影响,删除和更新操作执行。插入的表用于存储副本的线,由INSERT和UPDATE语句的影响。然后,我们看到,当更新操作执行,记录分开存储,插入和删除。事实上,这是不难理解的。删除的表在更新之前存储记录,而插入的存储在更新后记录。在这里,我不再谈理论问题。官方信息更
详细。
现在我们要做的是本文的重点。添加一个记录wordinfo时,我们使用触发增加1 UserInfo的对应记录的leavecount领域。代码如下:
复制代码代码如下所示:
-向触发器添加
消息 如果存在(选择的
名字从sysobjects WHERE name = 'tr_leaveword_add'and型= TR')
删除触发器tr_leaveword_add
去
创建触发器tr_leaveword_add
在wordinfo插入
更新用户信息
设置leavecount = leavecount + 1
其中UserID =(选择前1用户ID插入)
去
好的,在这里你可以调用它一天,
值得注意的是,如果触发器是由更新触发的,那么在执行更新后
查询之前,更新数据到查询表中删除。