SQL服务器触发器

2023-11-25

我有一个这样的表结构:

create table status_master
(
  Name varchar(40)
  status varchar(10)
)

如果状态列值更新值,我需要为状态列创建触发器 如果失败,则触发器调用一个插入命令,例如:

insert into temp value('s',s's')

请问有人能给我解决这个问题的想法吗?


不确定您真正想要实现什么 - 但在 SQL Server 中,您有两种类型的触发器:

  • AFTER在 INSERT、UPDATE、DELETE 之后触发的触发器
  • 代替可以捕获操作(INSERT、UPDATE、DELETE)并执行某些操作的触发器

SQL Server 没有其他 RDBMS 所具有的 BEFORE INSERT/UPDATE/DELETE 触发器。

您可以有任意数量的 AFTER 触发器,但每个操作(INSERT、UPDATE、DELETE)只能有一个 INSTEAD OF 触发器。

更常见的情况是 AFTER 触发器,例如:

CREATE TRIGGER trgCheckInsertedValues
ON status_master
AFTER INSERT
AS
BEGIN
  INSERT INTO dbo.temp(field1, field2, field3)
     SELECT i.Name, i.Status
     FROM inserted i
     WHERE i.Status = 'FAIL'
END

在这里,我正在检查“插入”伪表,其中包含插入表中的所有行,对于包含“status = FAIL”的每一行,您将向“临时”表插入一些字段。

再次 - 不确定你真正想要的细节 - 但这将是如何在 SQL Server T-SQL 代码中执行此操作的粗略概述。

Marc

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL服务器触发器 的相关文章

随机推荐

  • 进行证书验证的“urllib2.urlopen”的直接替代品

    我用Python的urllib2 urlopen用于与 HTTPS 服务器通信 但我现在学会了文档 HTTPS 请求 使用urllib2 urlopen 不对服务器的证书进行任何验证 这对我来说是一个大问题 因为它使我的服务器容易受到 MI
  • R 中带有 data.table 的交叉表[重复]

    这个问题在这里已经有答案了 我喜欢 R 中的 data table 包 我认为它可以帮助我执行复杂的交叉制表任务 但还没有弄清楚如何使用该包来执行类似的任务table 以下是一些重复调查数据 opinion lt c gov market
  • 为什么调用该函数? JavaScript / 窗口

    我的 HTML 文件中有以下代码
  • 在自定义/用户控件 (Winforms) 中添加对嵌套容器的设计时支持

    我有类似于向导控件的东西 中间是一个我想用来放置任何子控件的面板 我发现使用 ScrollableControlDesigner 将允许将删除的控件添加到自定义 用户控件中 但这不是我所需要的 它需要添加到容器中 以便可以应用布局而不影响
  • 使用 re.sub 和多次替换仅替换捕获的组

    下面只是我创建的一个简单示例 string I love sleeping I love singing I love dancing pattern re compile r I love w 我只想用 re sub 替换 w 部分 这个
  • C# 基类方法使用的成员变量重写

    好吧 我承认这有点奇怪 但它确实有一个合乎逻辑的目的 我在当前项目中使用 C 并试图找到一种方法来重写派生类中的成员变量 但在基类方法中访问被重写的变量 为了让事情变得更 有趣 如果重写的成员变量是静态的 这在下面的示例代码中没有显示 那就
  • Delphi中简单的读/写记录.dat文件

    由于某种原因 即使我昨天使用过 我的 OpenID 帐户也不再存在 但不管怎么说 我需要将记录数据保存到 dat 文件中 我尝试了很多搜索 但都是与数据库和BLOB的东西有关 我无法从中构建任何东西 我有以下记录 type Scores r
  • Cassandra 中的 IN 关系对查询不利吗?

    给出 CQL 中以下选择的示例 SELECT FROM tickets WHERE ID IN 1 2 3 4 给定 ID 是分区键 使用 IN 关系比执行多个查询更好还是没有区别 我记得不久前在 Cassandra 用户邮件列表中看到有人
  • Python argparse --toggle --no-toggle 标志

    有没有简单直接的使用方法 toggle and no togglePython 的 argparse 的标志 现在我正在使用类似于以下内容的东西 import argparse parser argparse ArgumentParser
  • for循环条件下方法调用的效率

    我正在编写一个游戏引擎 其中一组对象保存在一个ArrayList使用 for 循环进行迭代 显然 效率相当重要 所以我想知道循环的效率 for String extension assetLoader getSupportedExtensi
  • React 高阶组件强制重新渲染包装组件

    我正在努力了解如何在高阶组件中正确实现此验证行为 编辑 TLDR 感谢用户 noa dev 的出色建议 我在这里创建了一个 React Fiddle https jsfiddle net 8nLumb74 1 来展示问题 简而言之 为什么我
  • 使用 Google Directions API 问题绘制具有超过 8 个航点的路线图

    我正在尝试绘制具有多个航点的路线图 根据谷歌API 您只能使用8个航点 对于业务开发 您只能使用23个航点 但这不足以绘制准确的旅行地图 我得到了一个值得注意的解决方案链接在这里但没有正常工作 该解决方案在某种程度上存在一个问题 它无法绘制
  • 如何获取eclipse的JDT源码?

    我正在尝试编写一个Eclipse插件 但我发现默认情况下没有源 我在 www eclipse org 上搜索 但没有找到任何东西 我的日食是3 6 2 哪里可以得到JDT的源码 似乎在最新版本的 Eclipse 至少是 Juno 和 Kep
  • Solr - 不区分大小写的搜索不起作用

    我想对字段应用不区分大小写的搜索myfield在 solr 中 我用谷歌搜索了一下 我发现我需要申请LowerCaseFilterFactory字段类型和字段应该是solr TextFeild 我将其应用到我的schema xml并重新索引
  • 在 matlab exe 中使用标准 io 流:stdin 和 stdout

    Question 我希望它能够 监听 正在运行 已编译 的 Matlab 可执行文件中的标准输入流 我相信这就是完成的方式c或类似的语言 include stdio h fgets line 256 stdin 或者更详细地说 它可以这样使
  • std::bind 类内部的静态成员函数

    我正在尝试存储一个函数以便稍后调用 这是一个片段 这工作正常 void RandomClass aFunc int param1 int param2 double param3 bool isQueued false If some co
  • Maven 生成实际的 jar 作为 .jar.original 而不是 .jar 文件

    基本上我有一个 Maven 项目 我正在尝试使用生成我的项目的 jarmvn clean compile package通过 spring 工具套件使用下面的 pom xml 执行命令后 我在我的目录中生成了2个jar文件target文件夹
  • Crashlytics iOS - 第 0 行崩溃 - Swift 源

    我目前在某些 Swift 源文件发生崩溃时遇到问题 事实上 在 Crashlytics 上我有一个关于线路和崩溃原因的奇怪信息 它告诉我源已经崩溃了line 0它给了我一个SIGTRAP错误 我读到当线程遇到断点时会发生此错误 但问题是 当
  • System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity 的奇怪问题

    我们正在编写一个系统 允许用户通过 Intranet 上的 Web 应用程序更改其帐户密码 起初 一切似乎都进展顺利 在开发过程中 我们的测试帐户的密码可以毫无问题地更改 然而 当我们让系统上线时 我们开始遇到问题 以下是症状 起初 一切都
  • SQL服务器触发器

    我有一个这样的表结构 create table status master Name varchar 40 status varchar 10 如果状态列值更新值 我需要为状态列创建触发器 如果失败 则触发器调用一个插入命令 例如 inse