我试图使用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?
感谢