而不是触发器来更新具有多个表的视图

2023-11-29

我试图找到一个示例,说明如何使用替代触发器更新多个表上的视图。

也就是说,我想要更新该视图从中选择的多个表。

我找不到任何例子。如果有人能告诉我如何做到这一点那就太好了。


假设您在这里使用的是 SQLServer过于简单化 example

CREATE TABLE persons
(personid  int, 
 firstname varchar(32), 
 lastname  varchar(32));

CREATE TABLE employees
(employeeid int, 
 personid   int, 
 title      varchar(32));

CREATE VIEW vwEmployees AS
SELECT p.personid, employeeid, firstname, lastname, title
  FROM employees e JOIN persons p
    ON e.personid = p.personid;

CREATE TRIGGER tgEmployeesInsert ON vwEmployees
INSTEAD OF INSERT AS
BEGIN
  INSERT INTO persons (personid, firstname, lastname)
  SELECT personid, firstname, lastname
    FROM INSERTED

  INSERT INTO employees (employeeid, personid, title)
  SELECT employeeid, personid, title
    FROM INSERTED
END;

INSERT INTO vwEmployees (personid, employeeid, firstname, lastname, title)
VALUES(1, 1, 'Jhon', 'Doe', 'SQL Developer');

Note:事实上,你肯定要处理IDENTITY列以及 SQL Server 中的触发器是语句范围而不是行范围这一事实。

Here is SQLFiddle demo

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

而不是触发器来更新具有多个表的视图 的相关文章

  • 如何使用 PHP 从 MSSQL 读取图像字段

    我正在创建一个网站 需要同步从离线 MSSQL 服务器读取的在线 MySQL 数据库 除图像字段外 所有通信和从 MSSQL 读取所有字段均工作正常 我已经使用 PHP 和 Mysql 一段时间了 知道如何向 MySQL 数据库插入 检索图
  • INFORMATION_SCHEMA 与 sysobjects

    在 SQL Server 中 INFORMATION SCHEMA 和 sysobjects 之间有什么区别 其中一个是否比另一个提供更多信息 或者它们通常用于不同的用途 sysobjects 与 sys objects 相同吗 如果不是
  • 删除原始数据中部分重复的记录

    我需要删除表中时间间隔为 1 或 2 分钟或相同且必须相同的所有记录ID但保留第一个记录 ID Time SN SD WE FW 10 2014 06 30 19 17 37 000 I 0 100 0 10 2014 06 30 19 1
  • 脚本在 SpreadsheetApp.openById 上失败 - 需要权限

    我有一个 onOpen 函数 可以在电子表格中创建自定义菜单 它已经工作了一年多 但几天前它停止工作了 当我查看执行记录时 我得到 执行失败 您无权调用 SpreadsheetApp openById 所需权限 https www goog
  • 按小时拆分日期/时间数据并将日期/时间范围展开为行

    我正在尝试使用 SQL Server 将一系列日期 时间数据扩展为多行 例如 我的数据看起来像 Date StartTime EndTime EmployeeID ShiftType 10 1 2019 8 30 00AM 4 57 00P
  • 清除表中的所有行将身份规范重置为零并且不影响外键?

    我们已经创建了数据库框架以及所有关系和依赖关系 但表内部只是虚拟数据 我们需要删除这些虚拟数据 并开始添加正确的数据 我们怎样才能清除所有内容并将主键 IsIdentity 是 保留为零 并且不影响外部表关系结构 多谢 您可以采取以下步骤
  • 在SQL Server中仅获取浮点数的小数部分[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在 SQL Server 2008
  • 是否可以自动化 SQL Server 2008 分析器?

    有一个post https stackoverflow com questions 488020 what is your most useful sql trick to avoid writing more code关于有用的 SQL
  • t sql中的相对路径?

    如何获取t sql中的相对路径 举个例子 sql文件位于文件夹中D temp 我想获取文件夹中文件hello txt的路径D temp App Data 如何使用相对路径引用 假设我正在 SQL Server Management Stud
  • 是否可以使用“WHERE”子句来选择SQL语句中的所有记录?

    晚上好 我很好奇是否可以在 SQL 语句中创建一个 WHERE 子句来显示所有记录 下面一些解释 随机 SQL 语句 Java JSP示例 正常情况 String SqlStatement SELECT FROM table example
  • 从数据库配置中的连接字符串中删除 SSIS 密码

    我有一个 SSIS 包 它使用 SQL 服务器中的 SSIS 配置表来检索 OLE DB 连接管理器的连接字符串属性 问题是我还需要相同的连接字符串来调用使用实体框架的程序集 我尝试访问连接管理器连接字符串属性 但 SSIS 总是删除密码
  • SQL Server 相当于 MySQL 的 USING

    在 MySQL 中 当您连接不同表中具有相同名称的列时 可以在连接中使用关键字 USING 例如 这些查询产生相同的结果 SELECT FROM user INNER JOIN perm USING uid SELECT FROM user
  • SQL Server 转换选择一列并将其转换为字符串

    是否可以编写一条从表中选择列并将结果转换为字符串的语句 理想情况下 我希望有逗号分隔的值 例如 假设 SELECT 语句看起来像这样 SELECT column FROM table WHERE column lt 10 结果是一列包含值的
  • SQL Server 差异工具

    在一个团队中工作时 人们很容易修改开发 SQL Server 表并忘记它 或者准备部署更改但必须等待部署 这使得我们的开发表和活动表不一致 从而在推送存储过程时导致问题 是否有一个工具可以让我输入 SPROC 名称并让它检查开发数据库和实时
  • 更新plpgsql中触发器函数中的多列

    给出以下架构 create table account type a id SERIAL UNIQUE PRIMARY KEY some column VARCHAR create table account type b id SERIA
  • 将多行合并为一行并根据行数附加列

    我正在尝试将同一个表的多行合并为一个 我有一个像这样的示例表 Col1 Col2 Col3 Col4 Col5 Col6 1 BH1 CB 12 CC CC Conveyor Mal 1 BH1 CB 104 ZC ZC Full Emp
  • 在存储过程结束时显式删除本地临时表有什么好处?

    考虑以下伪 T SQL 代码 由存储过程执行 CREATE TABLE localTable
  • SQL Server 支持哈希索引吗?

    所有索引都在SQL Server B Tree中吗 主键和外键肯定应该是基于哈希的索引吗 SQL Server中并非所有索引都是B树索引 SQL Server 2012添加了列存储索引 http msdn microsoft com en
  • 为什么查询优化器完全忽略索引视图索引?

    SQL 小提琴 http sqlfiddle com 6 d4496 1 http sqlfiddle com 6 d4496 1 数据是为您的实验预先生成的 有一个明显的表格 CREATE TABLE Entity ID int Clas
  • 与 FOREIGN KEY 约束冲突

    我有两张桌子 学术界 CREATE TABLE dbo R ACADEMIE ID ACADEMIE dbo IDENTIFIANT NOT NULL LC ACADEMIE CODE dbo LIBELLE COURT NOT NULL

随机推荐

  • 如何在 GtkTreeView 中交替亮/暗行?

    我已阅读并尝试了该问题的现有解决方案 但无法让它们发挥作用 我希望有人能指出我做错了什么 或者告诉我为什么这些解决方案不再有效 https thegnomejournal wordpress com 2011 03 15 styling g
  • 我可以根据之前的参数设置默认参数吗?

    是否可以使用函数参数列表中先前的参数作为参数列表中后续参数的默认值 例如 void f int a int b a int c b 如果可以的话 有什么使用规则吗 答案是否定的 你不能 您可以使用重载获得您想要的行为 void f int
  • Flexbox - justify-content: center 和align-items: center 不起作用?

    我有一个非常基本的 Flex 设置 并且无论出于何种原因 有问题的 div 不会在其父标签内垂直居中 您可以在下面看到单独的测试用例 likeness rank table border radius 3px margin bottom 2
  • 如何在 Java Swing 中创建圆形标题边框

    我确实了解要创建标题边框 您需要执行以下操作 BorderFactory createTitledBorder Your Title 然而 这会创建一个矩形边框 而我需要一个带有弯角的矩形 现在 据我了解 您可以通过以下方式创建自己的自定义
  • 如何从 JSON 数组将数据加载到自定义列表视图

    我已将数据从 JSON 数组加载到普通列表视图 如下所示 JSONArray jArray new JSONArray result final String array spinner new String jArray length f
  • file_get_contents 在代理后面?

    在工作中 我们必须使用代理来访问 80 端口 例如 我们为每个用户都有自己的自定义登录名 我的临时解决方法是使用curl 通过代理以我自己的身份登录并访问我需要的外部数据 是否有某种高级 php 设置我可以设置 以便在内部每当它尝试调用类似
  • RealityKit 中的粒子系统

    RealityKit中有粒子系统吗 如果是这样 有人可以指出我正确的文档 文章吗 到目前为止 我在 RealityKit 模块中没有找到任何粒子系统 RealityKit 中的粒子系统 可用于visionOS 1 0 and tvOS 17
  • 带有 VSTS 的 SonarCloud 出现错误 Duplicate ProjectGuid: "00000000-0000-0000-0000-000000000000"

    我们将 SonarCloud 添加到大型解决方案的构建管道中 我们的解决方案中仅分析了一个项目 但我们看到了此警告 警告 以下项目没有有效的 ProjectGuid 并且不是使用有效的解决方案 sln 构建的 因此将从分析中跳过 D a 1
  • 如何在控制台应用程序中使文本居中? [复制]

    这个问题在这里已经有答案了 我正在创建一个控制台应用程序 我需要将文本居中 有没有一种简单的方法可以做到这一点 或者我是否必须在文本之前放置空格直到它居中 感谢您的帮助 例如 使用 作为控制台的中心 你好 世界 string s Hello
  • R - Rselenium - 使用 = 'id' 导航下拉菜单/列表/框

    如何通过 using id 导航动态下拉列表 例如 remDr findElement using id value main ddYear 我可以找到并单击使用findElement 单击后 如果我知道我的目标选择有多少个向下箭头 我可以
  • 将sql字符串拆分为单词

    我想将字符串拆分成如下所示的单词 所有字符串的输出应该相同 INPUT 1 This is a string 2 This is a string 3 This is a string 4 This is a string OUTPUT 这
  • 不使用 MFMessageComposeViewController 发送消息

    我喜欢制作自己的 iMessages 消息应用程序 该应用程序基本上已准备就绪 但我不知道如何在不显示 MFMessageComposeViewController 的情况下发送 iMessage 我知道有办法 他们在 ByteSMS 和所
  • 缩小 C++0x 中的转换范围。是只有我这么认为,还是这听起来像是一个重大改变?

    C 0x 将使以下代码和类似代码格式错误 因为它需要所谓的缩小转换范围 of a double to a int int a 1 0 我想知道这种初始化在现实世界的代码中是否经常使用 此更改会破坏多少代码 如果您的代码受到影响 需要付出很大
  • 使用两个 Android 应用程序的内容提供程序示例

    我想要insert or delete我当前的 Android 应用程序中另一个 Android 应用程序数据库中的值 我搜索了很多 大家都说用 content provider 它不与两个应用程序一起使用 所有两个应用程序都在一个应用程序
  • android:largescreens: = "true" 的属性值语法无效

    我正在开发一个 android 应用程序 minSdkVersion 为 11 targetSdkVersion 为 17 我正在为多种屏幕尺寸设计这个应用程序 所以我将对所有屏幕的支持放在清单文件中 我希望这个应用程序支持所有密度 我的
  • scikit-learn 中的 class_weight 参数如何工作?

    我很难理解如何class weightscikit learn 的逻辑回归中的参数运行 情况 我想使用逻辑回归对非常不平衡的数据集进行二元分类 这些类别被标记为 0 阴性 和 1 阳性 观察到的数据比例约为 19 1 大多数样本具有阴性结果
  • 使用 javascript 提取支持的 HTML 或 X11 颜色名称及其 RGB 值的列表

    有一些地方可以获取列表HTML or X11 颜色名称及其 RGB 等效项 例如我们可以发现 Aquamarine 是 70DB93 想必浏览器知道这些映射 有没有办法使用 javascript 询问浏览器并获取它支持的颜色名称列表 以及浏
  • SQL Server 连接超时

    我可以通过修改连接字符串来增加超时时间吗web config 是的 您可以附加 Connection Timeout 30给你的连接字符串并指定您想要的值 中设置的超时值Connection Timeout财产是一个以秒表示的时间 如果未设
  • Android ListView y 位置

    看起来 ListView 不像 ScrollView 那样公开它的 y 位置 换句话说 我需要记住 ListView 滚动到的确切位置 并在返回活动时设置它 只是为了澄清 我不需要所选的项目 这非常简单 我需要恢复 ListView 上精确
  • 而不是触发器来更新具有多个表的视图

    我试图找到一个示例 说明如何使用替代触发器更新多个表上的视图 也就是说 我想要更新该视图从中选择的多个表 我找不到任何例子 如果有人能告诉我如何做到这一点那就太好了 假设您在这里使用的是 SQLServer过于简单化 example CRE