[英]How to query the number of changes that have been made to a particular column in SQL
[英]Need to show database records before and after changes have been made in SQL-server
我在SQL服務器中執行查詢,該查詢使用2個表執行以下操作:名為“ accadj”的表1具有3個字段的舊值和新值的列表,因此accadj有6列。 表2稱為“ accnt”,其中包含實際記錄。 當accnt中的記錄與accadj中的舊值匹配時,accnt中的值將更改為與accadj中的新值匹配。 accadj看起來像這樣:
accnt看起來像這樣:
這些圖片都只是完整表格的摘要。 我描述的查詢代碼如下所示:
Update accnt
set accnt.accno = accadj.accnonew,
accnt.jno =accadj.jnonew,
accnt.saccno =accadj.saccnonew
from accnt accnt join accadj accadj with(nolock)
on accnt.accno = accadj.accnoold
and accnt.jno = accadj.jnoold
and accnt.saccno =accadj.saccnoold
我需要顯示查詢運行之前和之后的記錄,然后將其打印出來。 我知道如何使用剛才描述的代碼前面的代碼顯示查詢之前的記錄:
select accnt.*
from accnt, accadj
where accnt.accno = accadj.accnoold
and accnt.jno = accadj.jnoold
and accnt.saccno =accadj.saccnoold
但是運行查詢后,舊記錄不再存在,我無法弄清楚如何顯示帶有舊版本的新更改記錄。 關於如何解決此問題的任何想法?
在更新聲明上使用OUTPUT子句https://msdn.microsoft.com/zh-cn/library/ms177564.aspx
您插入的表是您的新值,已刪除的表是您的舊值。 您可以將它們插入到臨時表/表變量中,然后在代碼中進一步使用。 或者,如果您的SQL版本支持,請查看更改數據捕獲。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.