SQL触发器:在更新主键时,如何确定哪个“删除”记录对应于哪个“插入”记录?

2024-02-27

假设我知道更新主键是不好的。

还有其他问题表明inserted and updated表记录按位置匹配(第一个匹配另一个的第一个。)这是事实还是巧合?

当更新时主键发生变化时,是否有任何东西可以将两个表连接在一起?


no插入+删除的虚拟表行位置的匹配。

不,你不能匹配行

一些选项:

  • 还有另一个唯一不变的(对于该更新)键来链接行
  • 限制为单行操作。
  • 使用带有 OUTPUT 子句的存储过程来捕获键之前和之后
  • 带 OUTPUT 子句的 INSTEAD OF 触发器(TBH 不确定是否可以执行此操作)
  • 禁止主键更新(在评论后添加)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL触发器:在更新主键时,如何确定哪个“删除”记录对应于哪个“插入”记录? 的相关文章

  • T-SQL 中结果集的幂集(所有组合)

    我需要一个 t sql 代码来获取结果集的幂集 输入示例 ColumnName 1 2 3 Example Output one columns as nvarchar 1 2 3 1 2 1 3 2 3 1 2 3 输出集可能包含重复值
  • 对 SQL 时间序列进行采样

    我有一个日期时间的时间序列 存储在 mySQL 中的双列 并且希望每分钟对时间序列进行采样 即以一分钟的间隔提取最后一个值 有没有一种有效的方法可以在一个 select 语句中执行此操作 蛮力方法将涉及选择整个系列并在客户端进行采样或为每个
  • 金融 - 计算到期收益率

    我读了this https stackoverflow com questions 1173555 open source financial library specifically yield to maturity发布关于 net 库
  • sql查询中case语句中的布尔值

    我在选择查询中使用 case 语句 类似这样 Select col1 col2 isActive case when col3 abc then 1 else 0 end col4 from
  • MSSQL:如何使用代码编写存储过程创建脚本?

    我正在尝试使用一个数据库中存在但另一个数据库中不存在的 information schema routines 查询存储过程定义列表 SELECT t1 Routine Definition FROM server1 MyDatabase
  • 如何使用 ALTER TABLE 添加新列并使其唯一?

    我该如何使用ALTER TABLE添加新列并使其独一无二 取决于 DBMS 但我认为以下内容相当可移植 ALTER TABLE table name ADD column name datatype ALTER TABLE table na
  • 查询从同一表中的另一条记录获取值并按大于间隙阈值的差异进行过滤

    我将数据导入到 MS Access 中的临时表中 如下所示 我添加了需要使用 SQL 查询计算的 Gap 和 Previous Current 列 间隙阈值 是用户输入或范围提供给查询和例如是 300 GlobalID 对 ItemID 进
  • max()、分组依据和排序依据

    我有以下 SQL 语句 SELECT t client id max t points AS max FROM sessions GROUP BY t client id 它只是列出了客户 ID 以及他们所获得的最大积分 现在我想按 max
  • 随机排列每行的列值

    我正在使用 C NET 开发多项选择题考试生成器 每次做出报告时 都会在数据库中随机挑选问题 并随机调整选项 我可以做随机问题部分 但我不能做选择的洗牌 我有一张表 其中一行如下 question answer distractor1 di
  • xQuery LIKE 运算符?

    有没有办法以与 SQL 相同的方式使用 XQuery 执行 LIKE 操作 我不想构造一些 startswith endswith 和 contains 表达式 我想要实现的目标的示例 for x in user where x first
  • 删除前导零

    给定列中的数据 如下所示 00001 00 00026 00 我需要使用 SQL 删除空格后面的所有内容以及值中的所有前导零 以便最终输出为 1 26 我怎样才能最好地做到这一点 顺便说一句 我正在使用 DB2 这已在 DB2 for Li
  • 了解涉及 3 个或更多表时 JOIN 的工作原理。 [SQL]

    我想知道是否有人可以帮助我提高对 SQL 中 JOIN 的理解 如果它对问题很重要 我会特别考虑 MS SQL Server 取 3 个表 A B A 通过某些 A AId 与 B 相关 和 C B 通过某些 B BId 与 C 相关 如果
  • 过滤项目来源

    通过此代码 我设置了数据网格的 ItemsSource 不过 我有更多的 wpf 控件来过滤数据网格 例如从时间范围过滤数据网格 我可以为此编写一个新查询 但这似乎没有必要 因为数据已经可用 我只需要过滤它 最好的方法是什么 我能得到的任何
  • 尚未为此带有 SQL Server 的 DbContext .NET Core 配置数据库提供程序

    我一直用这个把头撞在墙上 并且一直在谷歌上搜索无济于事 我刚刚开始一个新的 ASP NET Core MVC 项目 我已将这两个包安装 更新为 2 2 0 Microsoft EntityFrameworkCore SqlServer Mi
  • Sql批量复制截断小数

    当我使用批量复制将十进制值从 C DataTable 插入 Sql Server 2005 时 值会被截断而不是四舍五入 DataTable 中的数据类型为 Decimal 数据库中的数据类型为Decimal 19 3 数据表中的值为 1
  • 选择两列中两个日期之间的记录

    如何选择两列中两个日期之间的记录 Select From MyTable Where 2009 09 25 is between ColumnDateFrom to ColumnDateTo 我有一个日期 2009 09 25 我喜欢选择
  • Solr 增量导入不起作用

    我使用的是solr 4 2 请注意 完全导入有效 但增量导入却无效 增量导入不会给出任何错误 但不会获取任何更改 这是数据配置文件
  • 常量值如何影响连接的 ON 子句?

    我最近发现 LEFT JOIN 的 ON 子句可能包含 1 1 等值 这让我感到不安 因为它打破了我对连接功能的看法 我遇到过以下情况的更详细版本 SELECT DISTINCT Person ID FROM Person LEFT JOI
  • 在 Django shell 会话期间获取 SQL 查询计数

    有没有办法打印 Django ORM 在 Django shell 会话期间执行的原始 SQL 查询的数量 Django 调试工具栏已经提供了此类信息 例如 5 QUERIES in 5 83MS但如何从 shell 中获取它并不明显 您可
  • Postgresql:SERIAL 在约束 INSERT 失败时递增

    有一个像这样的简单表结构 CREATE TABLE test id INT PRIMARY KEY sid SERIAL 我注意到如果我尝试插入一行但它未通过约束测试 即主键约束 SERIAL计数器无论如何都会增加 所以下一次成功插入 si

随机推荐

  • 确定 WPF 窗口中谁拥有焦点

    我们正在使用 WPF 并有一个从 DockingLibrary 派生的窗口 该窗口有一个网格 其中包含多个项目 其中一个是 WPF 数据网格 我们使用 M V VM 模式 创建并显示此窗口时 不会选择此数据网格中的任何行 我们可以通过执行以
  • 视图在 RotationY 动画接近结束时消失

    我正在尝试制作一个流畅的动画 其中占据大部分屏幕空间的视图旋转以显示背面的另一个视图 rotatingView animate rotationY 90 setDuration 250 setInterpolator new Acceler
  • Facebook 对话框失败并出现错误:操作无法完成。 (NSURLErrorDomain错误-999。)

    我正在使用适用于 ios 的 facebook api 并且我正在使用 facebook 对话框来发帖 基本思想是 我有一个发布按钮 它调用一个方法并询问您是否已登录以立即发布或执行登录然后发布 当第二种情况发生时 我无法在登录 Faceb
  • 检测我的网站上添加恶意软件的广告

    我最近在我的网站上做了一种 公共服务公告 告诉人们网站上只有一个广告 并且它被整齐地放置在网站的设计中 我这样做是因为有人报告该网站 无法正常工作 当被要求提供问题的屏幕截图时 我向我提供了以下信息 充满广告的屏幕截图http ezimba
  • 如何在 Amplify 控制台的配置步骤中更改节点版本

    我面临的问题是无法通过 AWS Amplify 控制台构建我的 Angular 应用程序 您正在运行 Node js v8 12 0 版本 Angular CLI 8 0 不支持该版本 支持的官方 Node js 版本为 10 9 或更高版
  • NDK 调试:ndk-gdb 无法拉取 app_process。谁以及何时创建 app_process 二进制文件?

    在调查本机代码中命中断点的问题时 我决定检查 ndk gdb 是否工作正常 我已经删除了app process 开始Java调试并运行ndk gdb force 你猜怎么着 app process 没有创建 ndk gdb verbose输
  • 将 2 个数组合并并交替为单个数组

    我具有初学者的脚本编写技能 并且正在使用 JavaScript 的一种形式 ECMA 262 该形式可以在名为 Opus Pro Digital Workshop 英国 的程序中找到 我一直在网上搜索 但没有成功 找到一种将两个数组中的数字
  • 为什么在云上训练时出现“IndexError:列表索引超出范围”?

    我求助于使用云培训工作流程 鉴于我得到的产品 我本希望直接放入与其他 tflite 模型一起使用的代码中 但云生成的模型不起作用 询问时我得到 索引超出范围 interpreter get tensor参数 这是我的代码 基本上是一个修改后
  • Reactjs 表单:使用两个提交按钮为同一表单执行两个不同的任务

    我想要我的表单有两个提交按钮 两者都将使用相同的输入和表单验证 但会执行不同的任务 export default function Formtwosubmits function handlesubmit task1 function ha
  • 如何授予 godaddy 服务器虚拟主机上的文件访问权限?

    我在 godaddy 服务器上托管我的 net Web 服务 我已授予文件夹读 写权限 但它不提供对任何文件的授予权限 因此 当我尝试将任何文件从我的网络服务上传到服务器时 它会给我一个错误 You dont have rights to
  • 在 Flutter 中请求位置时,BLoC 不会产生状态

    我使用三个 Flutter 包来实现一项功能 用户可以通过拉动来刷新 使用 BLoC 逻辑检索地理坐标并将其传递回 Flutter 拉动刷新 https pub dev packages pull to refresh BLoC https
  • Google Play 中具有相同名称但包名称不同的新应用

    我想上传另一个 apk 其应用程序标题与我已有的应用程序标题相同 尚未发布 我收到 您需要为您的应用选择不同的标题 这个已经是 com foo bar 的标题 我以为只要包名不同就可以上传新的apk 有没有办法做到这一点 或者我必须创建另一
  • 自动化 NIFI 模板部署

    我是 nifi 的新手 我试图了解 因为它看起来很多基于 GUI 是否有一种方法可以在 Nifi 上自动扩展和缩减 以及如何采用 xml Nifi 模板并将其部署到集群 本质上 我们想做的是使用 Nifi 从 kafka 服务器收集 JMX
  • 更改 GitHub 上的存储库语言

    我注意到 Github 选择 JavaScript 作为我的 Django 应用程序的语言 可以改成Python吗 或者我需要创建一个新的存储库吗 Solved 正如 Geno Chen 所说 要更改存储库语言 我们必须添加包含以下代码的文
  • 为什么无法从具有 PAGE_GUARD 保护的块中读取数据?

    我使用 ReadProcessMemory 函数从地址空间读取数据 我尝试读取所有具有 MEM PRIVATE 类型的块 但是当该块具有 PAGE GUARD 保护时 我收到错误 函数返回 0 为什么 谢谢大家 具有 PAGE GUARD
  • 不同 PostgreSQL 服务器上提取纪元的不同结果

    我们将时间戳转换为纪元 对它们进行一些数学计算 然后将它们转换回时间戳 数据库中的所有时间都是TIMESTAMP WITHOUT TIME ZONE 由于在英国 切换到夏令时的时间在一台服务器上关闭了一个小时 而在另一台服务器上则没有 所以
  • 在 Linux 上安装 Freeglut

    我正在尝试在运行 Linux Mint 的计算机上安装 freeglut 我按照该网站上的步骤操作 http freeglut sourceforge net docs install php http freeglut sourcefor
  • 确定堆上对象的对象分配发生的位置

    是否有任何工具可以从正在运行的应用程序获取堆转储并根据源代码中创建对象的位置确定 分组对象 无需更改源代码 并且最好是免费的 例如 ANTS 的 NET Memory Profiler 怎么样 也许 CLR 探查器
  • 如何在自动热键中连接数字和字符串

    我有以下自动热键脚本 A 5 B 7 C A B MsgBox C 第三行不起作用 我期待 57 的输出 我已经尝试过以下方法 C A B C A B C A B C A B C A B 哪个都不起作用 谁能告诉我该怎么做 我使用的是1 1
  • SQL触发器:在更新主键时,如何确定哪个“删除”记录对应于哪个“插入”记录?

    假设我知道更新主键是不好的 还有其他问题表明inserted and updated表记录按位置匹配 第一个匹配另一个的第一个 这是事实还是巧合 当更新时主键发生变化时 是否有任何东西可以将两个表连接在一起 有no插入 删除的虚拟表行位置的