Sql Server之更改跟踪功能

1.更改跟踪(Change Tracking)介绍

更改跟踪是一种轻量型解决方案,它为应用程序提供了一种有效的更改跟踪机制。更改跟踪捕获更改了表行这一事实,但不会捕获更改的数据。 这样,应用程序就可以确定使用从用户表中直接获取的最新行数据更改的行。

2.数据库启用更改跟踪(Change Tracking)

(1)查询某个数据库是否开启更改跟踪(Change Tracking)功能

SELECT
DB_NAME(database_id) DataBaseName,is_auto_cleanup_on,retention_period,retention_period_units_desc
FROM sys.change_tracking_databases
WHERE DB_NAME(database_id)='数据库名称'

(2)开启某个数据库的更改跟踪(Change Tracking)功能

ALTER DATABASE 数据库名称
SET CHANGE_TRACKING = ON --开启更改跟踪功能
(CHANGE_RETENTION = 30 DAYS, AUTO_CLEANUP = ON) --设置保持期与是否自动清除

3.表启用更改跟踪(Change Tracking)

(1)查询某个表是否开启更改跟踪(Change Tracking)功能

SELECT
OBJECT_NAME(object_id) TableName,is_track_columns_updated_on
FROM sys.change_tracking_tables
WHERE OBJECT_NAME(object_id)='表名'

(2)开启某个表的更改跟踪(Change Tracking)功能

ALTER TABLE [schema].[表名]
ENABLE CHANGE_TRACKING --开启更改跟踪服务
WITH (TRACK_COLUMNS_UPDATED = ON) --开启跟踪已更新的列

4.更改跟踪(Change Tracking)常用SQL语句

(1)查询当前更改跟踪版本号

SELECT CHANGE_TRACKING_CURRENT_VERSION ()
AS CURRENT_VERSION

(2)查询在数据库更改跟踪功能保持期内的最小更改跟踪版本号

SELECT CHANGE_TRACKING_MIN_VALID_VERSION
(OBJECT_ID('schema.表名')) AS MIN_VERSION

(3)使用Changes关键字查看更改信息

SELECT * -- SYS_CHANGE_VERSION,SYS_CHANGE_CREATION_VERSION,SYS_CHANGE_OPERATION,SYS_CHANGE_COLUMNS,SYS_CHANGE_CONTEXT,表主键字段名称
FROM CHANGETABLE(CHANGES schema.表名, 更改跟踪版本号) AS CT --只能查询大于更改跟踪版本号的数据变化信息

(4)返回哪些列被修改,1为真,0为假

SELECT 表主键名称,
CHANGE_TRACKING_IS_COLUMN_IN_MASK(
COLUMNPROPERTY(
OBJECT_ID('schema.表名'),'字段名1', 'ColumnId') ,
SYS_CHANGE_COLUMNS) '是否改变字段名1',
CHANGE_TRACKING_IS_COLUMN_IN_MASK(
COLUMNPROPERTY(
OBJECT_ID('schema.表名'),'字段名2', 'ColumnId') ,
SYS_CHANGE_COLUMNS) '字段名2',
CHANGE_TRACKING_IS_COLUMN_IN_MASK(
COLUMNPROPERTY(
OBJECT_ID('schema.表名'), '字段名3', 'ColumnId') ,
SYS_CHANGE_COLUMNS) '字段名3'
-- 可增加要查看的列
FROM CHANGETABLE(CHANGES dbo.tj_test, 0) AS CT
WHERE SYS_CHANGE_OPERATION = 'U' -- U代表更新、I代表插入、D代表删除

相关推荐

  1. Sql Server更改跟踪功能

    2024-02-03 04:26:02       34 阅读
  2. 目标跟踪多目标跟踪

    2024-02-03 04:26:02       13 阅读
  3. 四、KMDF开发traceview跟踪打印信息

    2024-02-03 04:26:02       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-03 04:26:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-03 04:26:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-03 04:26:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-03 04:26:02       20 阅读

热门阅读

  1. SQL Server 函数参考手册(SQL Server 日期函数)

    2024-02-03 04:26:02       34 阅读
  2. Node Exporter开启tcp相关指标

    2024-02-03 04:26:02       27 阅读
  3. chatchat部署在ubuntu上的坑

    2024-02-03 04:26:02       29 阅读
  4. Spring声明式事务

    2024-02-03 04:26:02       36 阅读
  5. 算法练习03——滑动窗口

    2024-02-03 04:26:02       39 阅读
  6. JC/T 2569-2020 建筑门窗用木型材检测

    2024-02-03 04:26:02       34 阅读
  7. 索引的设计原则(MySQL)

    2024-02-03 04:26:02       28 阅读