Sql server 2008 更改多个表的数据捕获
SQL Server 2008。 是否可以创建更改数据捕获(或更改跟踪) 对于数据库中的几个相关表格? 例如多对多关系Sql server 2008 更改多个表的数据捕获,sql-server-2008,change-tracking,change-data-capture,Sql Server 2008,Change Tracking,Change Data Capture,SQL Server 2008。 是否可以创建更改数据捕获(或更改跟踪) 对于数据库中的几个相关表格? 例如多对多关系 它会是什么样子?从来没有用过它,但我会说:是的 首先准备数据库: ALTER DATABASE [yourdb] SET ALLOW_SNAPSHOT_ISOLATION ON ALTER DATABASE [yourdb] SET CHANGE_TRACKING = ON (CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON) 现在在
它会是什么样子?从来没有用过它,但我会说:是的 首先准备数据库:
ALTER DATABASE [yourdb] SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE [yourdb]
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
现在在所需的表上启用更改跟踪:
查询更改:
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
如果@sync\u已初始化=0
选择*
来自[yourschema]。[yourtable]左外部联接
CHANGETABLE(更改[yourschema]。[yourtable],@sync\u last\u received\u anchor)CT
在CT上。[yourkey]=[yourschema].[yourtable].[yourkey]
其他的
开始
挑选*
来自销售部。客户
JOIN CHANGETABLE(更改[yourschema]。[yourtable],@sync\u last\u received\u anchor)CT
在CT上。[yourkey]=[yourschema].[yourtable].[yourkey]
其中(CT.SYS\u CHANGE\u OPERATION='I'
和CT.SYS\u更改\u创建\u版本
从来没有用过它,但我会说:是的
首先准备数据库:
ALTER DATABASE [yourdb] SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE [yourdb]
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
现在在所需的表上启用更改跟踪:
查询更改:
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
如果@sync\u已初始化=0
选择*
来自[yourschema]。[yourtable]左外部联接
CHANGETABLE(更改[yourschema]。[yourtable],@sync\u last\u received\u anchor)CT
在CT上。[yourkey]=[yourschema].[yourtable].[yourkey]
其他的
开始
挑选*
来自销售部。客户
JOIN CHANGETABLE(更改[yourschema]。[yourtable],@sync\u last\u received\u anchor)CT
在CT上。[yourkey]=[yourschema].[yourtable].[yourkey]
其中(CT.SYS\u CHANGE\u OPERATION='I'
和CT.SYS\u更改\u创建\u版本