在此场景中,我们的目标是检索仅包含已修改列的 XML在 SQL Server 数据库上执行更新触发器时的值。此信息对于数据复制目的至关重要。
一种方法涉及使用动态 SQL 构建提取的代码修改后的列值。然而,如果表有大量列,这种方法可能会很乏味。
更有效的解决方案是逆透视插入和删除的表,创建一个包含唯一键 (ContactID)、字段名称 (FieldName) 和字段值 (FieldValue) 字段的表。通过连接这两个表,可以识别 FieldValue 发生更改的任何行,从而为我们提供修改后的值。
考虑以下代码:
这种非声明性方法可以有效地处理更改、删除和插入,而无需使用复杂的动态 SQL 或面临位域算术溢出问题。只要使用额外的 GUID 列进行标识,也不会受到自然主键变化的影响。
以上是如何从 SQL Server 更新触发器中高效地仅检索已修改的字段?的详细内容。更多信息请关注PHP中文网其他相关文章!