当前位置: 首页 > 面试题库 >

在SQL Server中创建触发器

韦熙云
2023-03-14
问题内容

当我想使用SQL Server 2008
R2的预定义“创建触发器”创建触发器时,我迷路了。您能否给我一个直接的SQL语句,我可以用它创建触发器,并告诉我如何定义AFTER,BEFORE等所有内容?

另外,我如何知道行UPDATED / INSERTED / DELETED,并使用其列值在触发器内进行操作?


问题答案:

数据库是面向集合的,触发器也不例外。当执行给定的操作时,触发器将触发,并且该操作可能会影响多行。因此,问题"Say I want to know the Primary Key of that row"是用词不当。可能插入了多行。

SQL
Server为名为AFTERinserted和AFTER的触发器提供了两个特殊的表,deleted它们表示由操作插入或删除的行,其结构与受影响的表相同。更新触发器可能同时填充两者inserteddeleted而插入触发器将仅填充inserted表。

来自评论:

但是将根据第二个表中的值来确定电子邮件收件人,其中第二个表中的外键ID位于第一个表中(该表是带有触发器的表

这个问题的答案是使用inserted表格(必须再次假设您可能具有多行)来循环浏览各行并发送电子邮件。但是,我建议不要将电子邮件逻辑置于触发器中。相反,我建议将该逻辑放入存储过程中,然后从中发送电子邮件。

供参考:创建触发器



 类似资料:
  • 请帮助我解决以下问题 我需要创建一个名为的触发器,每当“contact”表更新时就会触发该触发器。在更新联系人详细信息之后,这个触发器将把org_name和action插入到表中。受影响日志表中的操作名称为。 id整数org_name varchar2(255)street_address1 varchar2(255)street_address2 varchar2(255)城市varchar2(

  • 我试图在插入后创建一个触发器,它将更新另一个表。 这是我尝试的代码: 但我会收到以下错误消息: 1064-您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,了解使用“@qte AS integer”附近的正确语法;声明@code为整数;从INSERTED中选择@QTE=qteInv;%s“位于第4行

  • 主要内容:基本语法,创建 BEFORE 类型触发器,创建 AFTER 类型触发器触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 基本语法 在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器。 语法格式如下: CREATE <触发器名> < BEFORE | AFTER > <INSERT | UPDATE | DELETE > ON <

  • 进入函数详情页,点击“触发器”标签,展示当前函数配置的触发器,点击“创建新触发器”,选择HttpTrigger,填写对应信息。 路径映射必须以“/”开头,可以选择以GET或POST方法触发函数。 创建触发器后,触发器详情页面可对触发器进行修改及删除的操作,点击下图所示图标,可以获得HTTPS URL,通过该URL在浏览器或终端直接访问,触发Hello World函数。

  • 相关:Quartz群集-服务器启动时触发器重复 null 这是很好的,但我担心的是,当两个实例完全同时启动时,可能会出现竞争情况。因为在这段代码周围没有全局锁,集群中的所有节点都将尊重它,如果两个实例同时联机,我可能会得到重复的作业或触发器,这就违背了这段代码的要点。 在集群环境中是否有自动定义Quartz作业和触发器的最佳实践?还是我需要自己设置锁?

  • 本文向大家介绍MySQL如何创建触发器,包括了MySQL如何创建触发器的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了MySQL创建触发器的具体代码,供大家参考,具体内容如下 先来个实例: 实例解析:   先创建触发器中待存储的表t_attendance   DELIMITER $   意思是告诉mysql下文执行语句以“$”结束,如果没有这句,下面语句会出错,mysql无法判断哪句