2012-01-13 65 views
2

SQL Server 2008. 是否有可能爲db中的幾個相關表創建更改數據捕獲(或更改跟蹤) ? 例如多對多關係。更改幾個表的數據捕獲

它會是什麼樣子?

回答

0

從來沒有使用它,但從MSDN doc我會說:是的!

首先準備分貝:

ALTER DATABASE [yourdb] SET ALLOW_SNAPSHOT_ISOLATION ON 

ALTER DATABASE [yourdb] 
SET CHANGE_TRACKING = ON 
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON) 

立即啓用變化對所需的表(S)跟蹤:

ALTER TABLE [yourdb].[yourschema].[yourtable] 
ENABLE CHANGE_TRACKING 

查詢更改:

IF @sync_initialized = 0 
    SELECT * 
    FROM [yourschema].[yourtable] LEFT OUTER JOIN 
    CHANGETABLE(CHANGES [yourschema].[yourtable], @sync_last_received_anchor) CT 
    ON CT.[yourkey] = [yourschema].[yourtable].[yourkey] 
ELSE 
BEGIN 
    SELECT * 
    FROM Sales.Customer 
    JOIN CHANGETABLE(CHANGES [yourschema].[yourtable], @sync_last_received_anchor) CT 
    ON CT.[yourkey] = [yourschema].[yourtable].[yourkey] 
    WHERE (CT.SYS_CHANGE_OPERATION = 'I' 
    AND CT.SYS_CHANGE_CREATION_VERSION 
    <= @sync_new_received_anchor) 
END 
相關問題