霁彩华年,因梦同行—— 庆祝深圳霁因生物医药转化研究院成立十周年 情绪益生菌PS128助力孤独症治疗,权威研究显示可显著改善孤独症症状 PARP抑制剂氟唑帕利助力患者从维持治疗中获益,改写晚期卵巢癌治疗格局 新东方智慧教育发布“东方创科人工智能开发板2.0” 精准血型 守护生命 肠道超声可用于检测儿童炎症性肠病 迷走神经刺激对抑郁症有积极治疗作用 探索梅尼埃病中 MRI 描述符的性能和最佳组合 自闭症患者中痴呆症的患病率增加 超声波 3D 打印辅助神经源性膀胱的骶神经调节 胃食管反流病患者耳鸣风险增加 间质性膀胱炎和膀胱疼痛综合征的临床表现不同 研究表明 多语言能力可提高自闭症儿童的认知能力 科学家揭示人类与小鼠在主要癌症免疫治疗靶点上的惊人差异 利用正确的成像标准改善对脑癌结果的预测 地中海饮食通过肠道细菌变化改善记忆力 让你在 2025 年更健康的 7 种惊人方法 为什么有些人的头发和指甲比其他人长得快 物质的使用会改变大脑的结构吗 饮酒如何影响你的健康 20个月,3大平台,300倍!元育生物以全左旋虾青素引领合成生物新纪元 从技术困局到创新锚点,天与带来了一场属于养老的“情绪共振” “华润系”大动作落槌!昆药集团完成收购华润圣火 十七载“冬至滋补节”,东阿阿胶将品牌营销推向新高峰 150个国家承认巴勒斯坦国意味着什么 中国海警对非法闯仁爱礁海域菲船只采取管制措施 国家四级救灾应急响应启动 涉及福建、广东 女生查分查出608分后,上演取得理想成绩“三件套” 多吃红色的樱桃能补铁、补血? 中国代表三次回击美方攻击指责 探索精神健康前沿|情绪益生菌PS128闪耀宁波医学盛会,彰显科研实力 圣美生物:以科技之光,引领肺癌早筛早诊新时代 神经干细胞移植有望治疗慢性脊髓损伤 一种简单的血浆生物标志物可以预测患有肥胖症青少年的肝纤维化 婴儿的心跳可能是他们说出第一句话的关键 研究发现基因检测正成为主流 血液测试显示心脏存在排斥风险 无需提供组织样本 假体材料有助于减少静脉导管感染 研究发现团队运动对孩子的大脑有很大帮助 研究人员开发出诊断 治疗心肌炎的决策途径 两项研究评估了医疗保健领域人工智能工具的发展 利用女子篮球队探索足部生物力学 抑制前列腺癌细胞:雄激素受体可以改变前列腺的正常生长 肽抗原上的反应性半胱氨酸可能开启新的癌症免疫治疗可能性 研究人员发现新基因疗法可以缓解慢性疼痛 研究人员揭示 tisa-cel 疗法治疗复发或难治性 B 细胞淋巴瘤的风险 适量饮酒可降低高危人群罹患严重心血管疾病的风险 STIF科创节揭晓奖项,新东方智慧教育荣膺双料殊荣 中科美菱发布2025年产品战略布局!技术方向支撑产品生态纵深! 从雪域高原到用户口碑 —— 复方塞隆胶囊的品质之旅
您的位置:首页 >综合精选 >

sql触发器语句(sql触发器的使用及语法)

关于sql触发器语句,sql触发器的使用及语法这个问题很多朋友还不知道,今天小六来为大家解答以上的问题,现在让我们一起来看看吧!

1、CREATE TRIGGER 创建触发器,触发器是一种特殊的存储过程,在用户试图对指定的表执行指定的数据修改语句时自动执行。

2、Microsoft® SQL Server™ 允许为任何给定的 INSERT、UPDATE 或 DELETE 语句创建多个触发器。

3、 语法 CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] { { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS [ { IF UPDATE ( column ) [ { AND | OR } UPDATE ( column ) ] [ ...n ] | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask ) { comparison_operator } column_bitmask [ ...n ] } ] sql_statement [ ...n ] } } 参数 trigger_name 是触发器的名称。

4、触发器名称必须符合标识符规则,并且在数据库中必须唯一。

5、可以选择是否指定触发器所有者名称。

6、 Table | view 是在其上执行触发器的表或视图,有时称为触发器表或触发器视图。

7、可以选择是否指定表或视图的所有者名称。

8、 WITH ENCRYPTION 加密 syscomments 表中包含 CREATE TRIGGER 语句文本的条目。

9、使用 WITH ENCRYPTION 可防止将触发器作为 SQL Server 复制的一部分发布。

10、 AFTER 指定触发器只有在触发 SQL 语句中指定的所有操作都已成功执行后才激发。

11、所有的引用级联操作和约束检查也必须成功完成后,才能执行此触发器。

12、 如果仅指定 FOR 关键字,则 AFTER 是默认设置。

13、 不能在视图上定义 AFTER 触发器。

14、 INSTEAD OF 指定执行触发器而不是执行触发 SQL 语句,从而替代触发语句的操作。

15、 在表或视图上,每个 INSERT、UPDATE 或 DELETE 语句最多可以定义一个 INSTEAD OF 触发器。

16、然而,可以在每个具有 INSTEAD OF 触发器的视图上定义视图。

17、 INSTEAD OF 触发器不能在 WITH CHECK OPTION 的可更新视图上定义。

18、如果向指定了 WITH CHECK OPTION 选项的可更新视图添加 INSTEAD OF 触发器,SQL Server 将产生一个错误。

19、用户必须用 ALTER VIEW 删除该选项后才能定义 INSTEAD OF 触发器。

20、 { [DELETE] [,] [INSERT] [,] [UPDATE] } 是指定在表或视图上执行哪些数据修改语句时将激活触发器的关键字。

21、必须至少指定一个选项。

22、在触发器定义中允许使用以任意顺序组合的这些关键字。

23、如果指定的选项多于一个,需用逗号分隔这些选项。

24、 对于 INSTEAD OF 触发器,不允许在具有 ON DELETE 级联操作引用关系的表上使用 DELETE 选项。

25、同样,也不允许在具有 ON UPDATE 级联操作引用关系的表上使用 UPDATE 选项。

26、 WITH APPEND 指定应该添加现有类型的其它触发器。

27、只有当兼容级别是 65 或更低时,才需要使用该可选子句。

28、如果兼容级别是 70 或更高,则不必使用 WITH APPEND 子句添加现有类型的其它触发器(这是兼容级别设置为 70 或更高的 CREATE TRIGGER 的默认行为)。

29、有关更多信息,请参见 sp_dbcmptlevel。

30、 WITH APPEND 不能与 INSTEAD OF 触发器一起使用,或者,如果显式声明 AFTER 触发器,也不能使用该子句。

31、只有当出于向后兼容而指定 FOR 时(没有 INSTEAD OF 或 AFTER),才能使用 WITH APPEND。

32、以后的版本将不支持 WITH APPEND 和 FOR(将被解释为 AFTER)。

33、 NOT FOR REPLICATION 表示当复制进程更改触发器所涉及的表时,不应执行该触发器。

34、 AS 是触发器要执行的操作。

35、 sql_statement 是触发器的条件和操作。

36、触发器条件指定其它准则,以确定 DELETE、INSERT 或 UPDATE 语句是否导致执行触发器操作。

37、 当尝试 DELETE、INSERT 或 UPDATE 操作时,Transact-SQL语句中指定的触发器操作将生效。

38、 触发器可以包含任意数量和种类的 Transact-SQL 语句。

39、触发器旨在根据数据修改语句检查或更改数据;它不应将数据返回给用户。

40、触发器中的 Transact-SQL 语句常常包含控制流语言。

41、CREATE TRIGGER 语句中使用几个特殊的表: deleted 和 inserted 是逻辑(概念)表。

42、这些表在结构上类似于定义触发器的表(也就是在其中尝试用户操作的表);这些表用于保存用户操作可能更改的行的旧值或新值。

43、例如,若要检索 deleted 表中的所有值,请使用: SELECT * FROM deleted 如果兼容级别等于 70,那么在 DELETE、INSERT 或 UPDATE 触发器中,SQL Server 将不允许引用 inserted 和 deleted 表中的 text、ntext 或 image 列。

44、不能访问 inserted 和 deleted 表中的 text、ntext 和 image 值。

45、若要在 INSERT 或 UPDATE 触发器中检索新值,请将 inserted 表与原始更新表联接。

46、当兼容级别是 65 或更低时,对 inserted 或 deleted 表中允许空值的text、ntext 或 image 列,将返回空值;如果这些列不可为空,则返回零长度字符串。

47、 当兼容级别是 80 或更高时,SQL Server 允许在表或视图上通过 INSTEAD OF 触发器更新 text、ntext 或 image 列。

48、 n 是表示触发器中可以包含多条 Transact-SQL 语句的占位符。

49、对于 IF UPDATE (column) 语句,可以通过重复 UPDATE (column) 子句包含多列。

50、 IF UPDATE (column) 测试在指定的列上进行的 INSERT 或 UPDATE 操作,不能用于 DELETE 操作。

51、可以指定多列。

52、因为在 ON 子句中指定了表名,所以在 IF UPDATE 子句中的列名前不要包含表名。

53、若要测试在多个列上进行的 INSERT 或 UPDATE 操作,请在第一个操作后指定单独的 UPDATE(column) 子句。

54、在 INSERT 操作中 IF UPDATE 将返回 TRUE 值,因为这些列插入了显式值或隐性 (NULL) 值。

55、 说明 IF UPDATE (column) 子句的功能等同于 IF、IF...ELSE 或 WHILE 语句,并且可以使用 BEGIN...END 语句块。

56、有关更多信息,请参见控制流语言。

57、 可以在触发器主体中的任意位置使用 UPDATE (column)。

58、 column 是要测试 INSERT 或 UPDATE 操作的列名。

59、该列可以是 SQL Server 支持的任何数据类型。

60、但是,计算列不能用于该环境中。

61、有关更多信息,请参见数据类型。

本文分享完毕,希望对大家有所帮助。

标签:

免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!