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代表删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PostGIS空间数据库之空间数据融合实践

目录 前言 一、ST_Union()简介 1、方法说明 2、参数介绍 二、ST_Collect()简介 1、方法说明 2、参数介绍 3、两者区别 三、实际案例实践 1、不重叠融合 2、空间重叠融合 总结 前言 众所周知,熟悉GIS桌面软件的同学一定都知道,想要对空…

Modern C++ idiom6 - 命名返回值优化NRVO

Note: NRVO的应用并不是绝对的,它依赖于编译器的优化能力。现在的编译器真的很厉害,一般写的不好的代码也能给你优化好! 在C中,性能一直是开发者关注的一个核心问题。为了提高程序的效率,各种优化技术应运而生。本文将…

使用goland IDE编写go windows ui

最近突发奇想,想实现一款工作节奏的提示安排小闹钟。那首先解决的就是UI。本人擅长go语言。那go在windows ui的探索肯定有人做过了吧。一查还真有,通过知乎,csdn等查到目前支持最好的就是walk库了。那走起试试。 一、拷贝go代码 将官网例子…

代码随想录算法训练营29期Day36|LeetCode 435,763,56

文档讲解:无重叠区间 划分字母区间 合并区间 435.无重叠区间 题目链接:https://leetcode.cn/problems/non-overlapping-intervals/description/ 思路: 按照右边界排序,从左向右记录非交叉区间的个数。最后用区间总数减去非交叉…

WiFi 7 的核心要点

目录 WiFi 7 是什么? WiFi 7 的主要feature功能: 320Mhz channel 4K QAM Multi-Link Operation (MLO),多链路操作 512 block ACK OFDMA:multiple RUs to single STA. 总结:性能是第一优先级,WiFi 7&#xf…

Python 方法重载

在其他编程语言中,例如Java和C++,可以使用方法重载来定义多个同名函数,但它们具有不同的参数类型和/或数量。然而,在Python中并没有直接支持方法重载的语法。 Python中的方法重载是指在同一个类中定义多个同名函数,但它们具有不同的参数类型和默认参数。由于Python是动态…

使用flink-cdc-sqlserver出现错误,需要批量开启sqlserver表cdc模式,监听表变化

docker安装 docker run -e "ACCEPT_EULAY" -e "MSSQL_SA_PASSWORDZcyc123456" -p 1433:1433 --name sqlserver -d mcr.microsoft.com/mssql/server:2017-latest开启库cdc模式 选择你自己的数据库,执行以下sql语句 EXEC sys.sp_cdc_enable_db…

Multi ElasticSearch Head插件基本操作

Multi ElasticSearch Head插件安装好之后我们可以进行一些基本的操作。 1、复合查询 因为ES提供了一些Restful风格的接口,可以让任何语言去调用,因此我们可以将之前的请求地址粘贴到Multi ElasticSearch Head插件里面,选择GET请求方式&#x…

C++——虚继承与菱形继承

C——虚继承与菱形继承 虚继承是C中一种特殊的继承方式,主要用来解决多重继承中的菱形继承问题。在菱形继承结构中,一个类继承自两个具有共同基类的类时,会导致共同基类的成员在派生类中存在两份拷贝,这不仅会导致资源浪费&#…

RIP——路由信息协议

目录 1 内部网关协议 RIP 1.1 协议 RIP 的工作原理 1.2 RIP“距离”的定义 1.3 RIP 协议的三个特点 1.4 RIP 协议的优缺点 1.5 路由表的建立 路由表主要信息和更新规则 2 距离向量算法 3 RIP2 报文 4 坏消息传播得慢 5 启动RIP 启动RIP: router rip 命令 启用和检…

redis百万级数据量预热方案

一、需求描述 项目中需要查询用户对应的地市信息,这些数据是存储在mysql数据库中,并且数据量是百万级别,查询频率高,所以想将需要查询的字段存储到redis中,来提高查询速度 二、需求分析 对redis数据预热&#xff0c…

Java持久化机制和实现的过程

Java持久化(Java Persistence)是指将数据(通常是对象)从临时存储区(如内存)保存到永久存储区(如数据库)的过程。这使得应用程序可以保存和检索数据,即使在应用程序关闭后…

面试题汇总

1 MySQL事务如何实现 MySQL数据库中事务的实现主要依赖于支持事务的存储引擎,如InnoDB。InnoDB通过日志系统和锁机制来确保事务处理过程满足ACID(原子性、一致性、隔离性和持久性)特性: 原子性 (Atomicity): Redo Log …

Elasticsearch:Geoshape query

Geoshape 查询可以用于过滤使用 geo_shape 或 geo_point 类型索引的文档。 geo_shape 查询使用与 geo_shape 或 geo_point 映射相同的索引来查找具有与查询形状相关的形状的文档,并使用指定的空间关系:相交(intersect)、包含(con…

Git介绍与常用命令总结

Git介绍与其常用命令总结 1、Git介绍2、Git的使用3、Git常用命令3.1 初始化仓库3.2 克隆仓库3.3 配置用户信息3.4 提交代码(Commit)3.5 推送代码(Push)3.6 拉取代码(Pull)3.7 分支(Branch)3.8 远程仓库(Remote)3.9 撤销回退本地改动3.10 更新本地仓库与远程仓库 1、Git介绍 Gi…

服务降级的快速发现与三方告警

一、熔断与降级 1、降级 基本概念 服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请…

AI Prompt工程师 学习整理

前言 如果说Al大语言模型(LLM,Large Language Model)是宝藏我,那么Prompt提示词就是打开宝藏的钥匙。 最新一代的Al大语言模型具备出色的创作能力,能够生成富有人类感情、严谨逻辑、多场景应用的内容,而如何获得高质量的回答,正确学习使用Prompt提示词是关键。 &#x1f4a5…

【2024美国大学生数学建模竞赛】2024美赛C题网球运动中的势头,网球教练4.0没人比我更懂这个题了!!!

【2023美国大学生数学建模竞赛】2024美赛C题 问题分析、数学模型、实现代码、完整论文 引言 题目将于2024年2月2日6:00发布。我们团队将会在8点前准时更新问题分析,逐步更新数学模型和实现代码,最后发布完整的论文。 更新进展: &#xff08…

Java算法 leetcode简单刷题记录11

Java算法 leetcode简单刷题记录11 删除排序链表中的重复元素: https://leetcode.cn/problems/remove-duplicates-from-sorted-list/ 合并俩个有序数组: https://leetcode.cn/problems/merge-sorted-array/ int[]数组转 List: Arrays.stream(arr).colle…

轻型民用无人机驾驶航空器安全操控——理论考试多旋翼部分笔记

今天已经可以在线考取轻型民用无人机驾驶航空器执照了,所以我也在在线观看完视频之后整理了如下的知识点,所有知识点全部来自UOM平台。 目录 航空器知识 (1)多旋翼民用无人驾驶航空器螺旋桨的作用 (2&#x…