比较数据库行

时间:2016-11-11 06:15:16

标签: c# sql sql-server json

问题 - 维护数据库中所有字段的审计跟踪。

我正在处理一项需求,该需求需要比较插入/更新/删除数据库表中几乎所有字段中所做的更改。

插入和删除非常简单,因为它是审计表中的新条目。

对于现有表,我需要维护许多行中的更改,并将用户旧值和新值显示为审计跟踪的一部分。

我有以下解决方案

  1. 触发器 - 我无法使用

  2. 我在表单上填充JSON对象时获取了JSON对象。我将更新的JSON对象发送到数据库。我可以比较JSON对象中的更改并将它们推送到审计跟踪中。到目前为止,我已经在简单的表格上完成了这个。

  3. 在数据库级别执行此操作。就像在临时表中推送旧条目一样,更新实际表并推送审计表中的差异。

  4. 在执行命令和更新main和audit表之前比较c#代码中的对象。

  5. 但不确定哪一个最好。我也开始研究第三种选择,但需要输入

    1. 是否存在可以在SQL中进行行比较的现有方法。

    2. 达到预期效果的任何其他想法。

    3. 我看过是否有类似的问题可用,但找不到。如果您知道的话,也可以为他们建议链接。

      更新

      实际上,解决方案将捕获变化,但我需要的是;

      让我们说我的表格如下。

      TABLE1

      ID |名称| Add1 | ADD2

      如果用户只更改了Add2字段,我需要捕获Add2字段的旧值和新值,以便我可以在屏幕上显示在某某日期,user1将字段Add2从

      实现这一目的的唯一方法是在执行Update命令之前比较一行的每一列吗?

      如果是;在SQL Server端有多贵?

0 个答案:

没有答案