我有一個日記表log記錄了students 表的所有的修改記錄。
log表結構為:l_time l_user stu_no stu_name stu_a stu_b stu_c
students結構為:stu_no stu_name stu_a stu_b stu_c
要求查詢出:l_time l_user change_Field old_value new_values
實際情況是students表中有50+列
有什么辦法嗎?
uj5u.com熱心網友回復:
--了解一下CDC功能
--開啟CDC
EXECUTE SYS.SP_CDC_ENABLE_DB
EXEC SYS.SP_CDC_ENABLE_TABLE 'DBO','students',@ROLE_NAME = NULL,@SUPPORTS_NET_CHANGES =0
--查詢操作日志
SELECT SYS.FN_CDC_MAP_LSN_TO_TIME ([__$START_LSN]) AS 時間,
CASE [__$OPERATION]
WHEN 1 THEN '洗掉'
WHEN 2 THEN '新增'
WHEN 3 THEN '改前'
WHEN 4 THEN '改后'
END AS 操作型別,
*
FROM CDC.DBO_students_CT
--如果不需要了,關閉
EXEC SYS.SP_CDC_DISABLE_TABLE 'DBO','students','ALL'
EXEC SYS.SP_CDC_DISABLE_DB
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/175443.html
標籤:疑難問題
上一篇:求C#的大佬賜教!
