我試圖使用SQL Server 2008更改跟蹤功能。一旦啓用該功能,您可以使用CHANGETABLE(...
功能來查詢更改跟蹤的歷史,是由SQL Server內部保存,例如:SQL Server 2008鏈接服務器和CONTEXT_INFO
SELECT
CT.ID, CT.SYS_CHANGE_OPERATION,
CT.SYS_CHANGE_COLUMNS, CT.SYS_CHANGE_CONTEXT
FROM
CHANGETABLE(CHANGES dbo.CONTACT,20) AS CT
其中SYS_CHANGE_CONTEXT列記錄CONTEXT_INFO()
會話值。這個字段是審計有用誰改變了什麼等等
一些使用四部分組成的符號由具有家用服務器作爲鏈接服務器如遠程SQL Server正在執行的更改數據的語句:
INSERT INTO [home server].[db name].[dbo].[CONTACT](id) values(@id)
我的問題是執行查詢的會話中的遠程服務器上設置的CONTEXT_INFO()沒有在我的主服務器更改跟蹤中找到,即它看起來不像CONTEXT_INFO跨越分佈式查詢。這意味着以下將而不是導致CONTEXT_INFO記錄在主服務器變更跟蹤上。
-- I'm running on a remote server
WITH CHANGE_TRACKING_CONTEXT (0x1256698477)
INSERT INTO [home server].[db name].[dbo].[CONTACT](id) values(@id)
有誰知道這是否是一個限制或是否有堅持的方式在整個分佈式查詢/通信CONTEXT_INFO?
感謝