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

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(使用前将#替换为@)

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

  • 使用具有外键的表将数据从 asp.net 页面插入到我的数据库中

    我是一名初学asp net程序员 我的项目是网上购物课程 我有一些问题 我有 4 个表 它们之间有一些外键 CREATE TABLE dbo orderdetails orderid INT NOT NULL classid INT NOT
  • 捕获 SQL Server 时态表删除上的 SysEndTime

    是否可以使用 OUTPUT 关键字捕获 SysEndTime 时间时间戳 例如 DECLARE MyTableVar TABLE sysendtime datetime2 DELETE FROM dbo someTable OUTPUT D
  • 在 SQLCMD 模式下格式化输出?

    有没有办法可以指定输出文件格式SQLCMD模式这样我就可以使用它读回来BULK INSERT 我想做这样的事情 CONNECT SERVER1 OUT E test SELECT TOP 100 ID NAME FROM DB1 dbo T
  • CROSS APPLY 不适用于 SQL SERVER 2000?

    如何在 SQL Server 2000 中使用与 CROSS APPLY 等效的功能 我有一个函数返回传递的 id 的顶级父级 ALTER Function dbo fn GetTopParentRiskCategory RctId int
  • WinForms 应用程序设计 - 将文档从 SQL Server 移动到文件存储

    我有一个连接到 SQL Server 的标准 WinForms 应用程序 该应用程序允许用户上传当前存储在数据库中的文档 在使用图像列的表中 我需要更改这种方法 以便将文档存储为文件 并将文件的链接存储在数据库表中 使用当前的方法 当用户上
  • 插入后用触发器更新多行(sql server)

    我有一个表 orderDetails 包含订单的产品 产品编号 color size quantity 和一个表库存 产品编号 size color stock 订单完成后 我使用此查询将项目插入表中orderDetails INSERT
  • Id 或 [TableName]Id 作为主键/实体标识符

    是否首选使用 Id 作为主键的列名或 TableName Id 作为命名约定 表 账户主键 ID 相对 表 账户主键 AccountId 在我见过的实现中 它似乎分为 50 50 左右 每种方法的优点和缺点是什么 跟进 在我的数据库中使用一
  • 无法在 SSIS 2012 上使用敏感项目参数

    在 SSIS 2012 中 我尝试对 Oracle 的 OLEDB 连接使用敏感项目参数 它与 Sensitive 属性设置为完美配合FALSE 在项目参数设计器中 但我不希望密码像那样可见 一旦我将敏感属性设置为TRUE并尝试执行我的包
  • 将大量实体插入 SQL Server 2012 [重复]

    这个问题在这里已经有答案了 我正在进行一个使用 Entity Framework 5 和 SQL Server 2012 的项目 我们需要一次插入大量行 100k 个实体的顺序 基本上 我们有一个物理程序 它输出大量二进制数据 然后我们需要
  • SQL Server 用分隔符分割字符串

    我有一个输入字符串 100 2 3 101 2 1 103 2 3 我想解析它并将其添加到具有 3 列的表中 因此它应该是 f x col1 col2 col3 100 2 3 类似的其他数据以逗号分隔作为记录和 作为列 Thanks ni
  • 如何让 LinqToSql 将“索引提示”传递给 sql server?

    由于我们不能相信我们的客户会更新 sql server 中的索引统计信息等 因此我们过去不得不使用索引提示 http www sql server performance com tips hints general p1 aspx 由于我
  • 在 SQL Server 中处理日期

    我正在开发一个 ASP NET 网站 我从网页获取日期 然后根据用户输入我想从 SQL Server 数据库获取结果 使用存储过程 问题是我只能从用户界面获取这种格式的日期2016 10 08这是字符串类型 但在数据库中 我有一个类型为da
  • Android 自定义布局 - onDraw() 永远不会被调用

    public class MainActivity extends Activity Override public void onCreate Bundle savedInstanceState super onCreate savedI
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • 重命名重复行

    这是我的问题的一个简化示例 我有一个表 其中有一个包含重复条目的 名称 列 ID Name 1 AAA 2 AAA 3 AAA 4 BBB 5 CCC 6 CCC 7 DDD 8 DDD 9 DDD 10 DDD 进行 GROUP BY 操
  • 为什么 SqlClient 在传递 SqlXml 时使用不必要的 XML 转换?

    我有一个关于从 C 代码将 xml 数据类型传递给查询的问题 首先 这是 SQL Server 上的一个表 CREATE TABLE dbo XmlTable id int IDENTITY 1 1 NOT NULL dat xml NOT
  • 临时表是线程安全的吗?

    我正在使用 SQL Server 2000 它的许多存储过程广泛使用临时表 数据库的流量很大 我担心创建和删除临时表的线程安全性 假设我有一个存储过程 它创建了一些临时表 它甚至可以将临时表连接到其他临时表等 并且还可以说两个用户同时执行存
  • 可以获取SQL Server中当前执行的存储过程的行号吗?

    几年前 我在 Sybase Delphi 环境中工作 使用 BDE 连接到数据库服务器 我们有一个 Delphi 小应用程序 给定当前正在执行的存储过程的名称 它可以告诉您当前正在执行该存储过程的哪一行 这对于调试似乎挂起的存储过程非常有用
  • 如何获得顶部带有千位分隔符的数字?

    SELECT count FROM table A 假设结果是8689 我怎样才能将它转换为8 689在 SQL Server 上 尝试这样 select replace convert varchar convert Money coun
  • 在 SQL Server 中,如果主键是 GUID,如何按插入顺序对表行进行排序?

    我开始在主键中使用 GUID 而不是自动增量整数 然而 在开发过程中 我习惯于查询 从 SQL Management Studio 或 Visual Studio 数据库 以查看我的应用程序刚刚插入的记录 并且我对无法按主键 desc 顺序

随机推荐

  • 如何在 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