【发布时间】:2014-05-06 16:37:55
【问题描述】:
TL;DR;
有没有一种方法可以比较同一个表的 2 行而不考虑表架构但忽略特定列?
长
我在系统维护中不知所措,并被要求在几个表中实施审计......准确地说是 72 个表......我决定在更新和删除时使用触发器。它工作正常并且表现符合预期。
我的问题是系统很白痴,并且在没有任何更改的情况下更新表上的行,类似于“将 X 更改为 X”,除了行有一个“rowversion”列,所以最后“rowversion”是更新。我的问题是:有没有办法比较行的“插入”版本和“删除”版本,而不考虑表架构并忽略特定列(因为如果 rowversion 进入操作,行将不一样...)。这里的主要目标是一个单脚本,我只需更改表名...
【问题讨论】:
-
我认为您最好的选择是编写一个 sql 脚本,该脚本将获取一个表格并为您编写比较脚本。然后可以将该比较粘贴到表的触发器中。
-
是的,你可以
group by字段并使用count;添加设置为count(unique_field) >=2的having子句将显示重复项。但是,表模式很重要,因为您将无法获取相同的查询并在不同的表上使用它。您要求的是SELECT ALL EXCEPT <fieldset> FROM ...语法,多年来我一直要求 ISO-SQL 采用该语法。
标签: sql sql-server tsql database-schema