问题 - 维护数据库中所有字段的审计跟踪。
我正在处理一项需求,该需求需要比较插入/更新/删除数据库表中几乎所有字段中所做的更改。
插入和删除非常简单,因为它是审计表中的新条目。
对于现有表,我需要维护许多行中的更改,并将用户旧值和新值显示为审计跟踪的一部分。
我有以下解决方案
触发器 - 我无法使用
我在表单上填充JSON对象时获取了JSON对象。我将更新的JSON对象发送到数据库。我可以比较JSON对象中的更改并将它们推送到审计跟踪中。到目前为止,我已经在简单的表格上完成了这个。
在数据库级别执行此操作。就像在临时表中推送旧条目一样,更新实际表并推送审计表中的差异。
在执行命令和更新main和audit表之前比较c#代码中的对象。
但不确定哪一个最好。我也开始研究第三种选择,但需要输入
是否存在可以在SQL中进行行比较的现有方法。
达到预期效果的任何其他想法。
我看过是否有类似的问题可用,但找不到。如果您知道的话,也可以为他们建议链接。
更新
实际上,解决方案将捕获变化,但我需要的是;
让我们说我的表格如下。
TABLE1
ID |名称| Add1 | ADD2
如果用户只更改了Add2字段,我需要捕获Add2字段的旧值和新值,以便我可以在屏幕上显示在某某日期,user1将字段Add2从
实现这一目的的唯一方法是在执行Update命令之前比较一行的每一列吗?
如果是;在SQL Server端有多贵?