SQL Server中的变更捕获技术--简单部署
------准备------
CREATE DATABASE db_test_cdc
CREATE TABLE t1(id INT IDENTITY(1,1) ,name VARCHAR(50));
INSERT INTO t1(name)VALUES('test')
------开始------
--启用数据库变更捕获
使用变更捕获首先需要启用数据库变更捕获,执行如下存储过程,启用变更捕获
USE db_test_cdc EXEC sys.sp_cdc_enable_db
GO
启用完以后SQL SERVER会自动创建一系列有关变更捕获的讯息,如下:

--启用表变更捕获
启用变更捕获以后,就可以针对表开启捕获,执行如下SQL
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo', --表架构名字
@source_name = N't1', --表名字
@role_name = N'cdec_role' --可以查询该表的角色,如果有则不创建,如果没有则创建
成功启用了该表以后,SQL Server会创建该表的数据捕获表:

当第一次启用表的时候,会创建两个代理作业,所以如果使用变更捕获,则需要启用代理,以下是第一次启用表变更产生的代理:

cdc.db_test_cdc_capture:是用于将变更的数据同步到我们启用的变更表中,即:cdc.dbo_t1_CT这个表
cdc.db_test_cdc_cleanup:适用于定时清理cdc.dbo_t1_CT这个表这个表中的数据
我们在t1表插入一条数据,进行测试。
INSERT INTO t1(name)VALUES('test1');
这个表则会记录一条数据

其中$operation这个字段表示新增的这行是怎么来的,值分别有下面这几种:
1:删除
2:增加
3:修改前数据
4:修改后数据
--禁用表变更捕获
USE db_test_cdc
GO EXEC sys.sp_cdc_disable_table
@source_schema = N'dbo',
@source_name = N't1',
@capture_instance = N'dbo_t1'
GO
执行禁用表变更以后,其相应的表会被删除掉 如下:

--禁用数据库变更
USE db_test_cdc
GO EXEC sys.sp_cdc_disable_db
禁用数据库表变更以后,所有有关变更捕获的讯息,均被清空;

-------结束---------
以上是有关变更捕获的简单部署,后续会继续更新有关变更捕获更详细的资料
SQL Server中的变更捕获技术--简单部署的更多相关文章
- NET在SQL Server中的图片存取技术
本文总结如何在.Net WinForm和.Net WebForm(asp.net)中将图片存入SQL Server中并读取显示的方法 .1.使用asp.net将图片上传并存入SQL Server中,然 ...
- 导出SQL Server中所有Job的最简单方法
应用场景: 在将源SQL Server数据库服务器中的所有Job(作业)迁移至目标数据库服务器的过程中,需要先将这些Job导出为SQL脚本. 操作步骤: 1.在Microsoft SQL Server ...
- SQL Server中带事务的存储过程简单举例
先来看一个概念: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行.那么在存储过程里添加事务,则可以保证该事务里的所 ...
- SQL Server中的高可用性(1)----高可用性概览
自从SQL Server 2005以来,微软已经提供了多种高可用性技术来减少宕机时间和增加对业务数据的保护,而随着SQL Server 2008,SQL Server 2008 R2,SQL ...
- SQL Server中的高可用性1
SQL Server中的高可用性(1)----高可用性概览 自从SQL Server 2005以来,微软已经提供了多种高可用性技术来减少宕机时间和增加对业务数据的保护,而随着SQL Server ...
- SQL Server数据库损坏、检测以及简单的修复办法
简介 在一个理想的世界中,不会存在任何数据库的损坏,就像我们不会将一些严重意外情况列入我们生活中的日常一样,而一旦这类事情发生,一定会对我们的生活造成非常显著的影响,在SQL Server中也 ...
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...
- SQL Server中的锁的简单学习
简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但对于大多数数据库来说是需要同时处理多个查询的 ...
- 最简单删除SQL Server中所有数据的方法
最简单删除SQL Server中所有数据的方法 编写人:CC阿爸 2014-3-14 其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间 ...
随机推荐
- AdaBoost入门
写一点自己理解的AdaBoost,然后再贴上面试过程中被问到的相关问题.按照以下目录展开. 当然,也可以去我的博客上看 Boosting提升算法 AdaBoost 原理理解 实例 算法流程 公式推导 ...
- Django源码分析之程序执行入口分析
一般我们开启一个django项目,最简单的方法是进入project 目录,这时目录结构是这样的 然后我们执行python manage.py runserver,程序就开始执行了. 那django是如 ...
- java中的重载与重写
重载简述 在java语言中,同一个类中的两个或者两个以上的方法可以有同一个名字,只要他们的的参数声明不同即可,该方法被称为重载,这个过程称为方法的重载,它是实现java多态性的一种方式. 重载是友好的 ...
- [bzoj2333] [SCOI2011]棘手的操作 (可并堆)
//以后为了凑字数还是把题面搬上来吧2333 发布时间果然各种应景... Time Limit: 10 Sec Memory Limit: 128 MB Description 有N个节点,标号从1 ...
- B. Duff in Love
B. Duff in Love time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- Windows系统下文件的概念及c语言对其的基本操作(甲)
文件概念
- .NET MongoDB Driver 2.2使用示例
说明:mongoDBService是对各种常用操作的封装 public class MongoDBService { #region 变量 /// <summary> /// 缓存 /// ...
- html5 文本格式化
通常标签 <strong> 替换加粗标签 <b> 来使用, <em> 替换 <i>标签使用.然而,这些标签的含义是不同的:<b> 与< ...
- js定时器之setTimeout的使用
之前用过定时器,只不过用的不是很多,关于js定时器,一般而言我们很容易想到setInterval和setTimeout这两种. 刚开始学js定时器时,记住了setInterval,该方法一般用于每隔多 ...
- 关于atom
以前老听别人说atom这款编辑器如何如何的好用,今天特地试了下,结果一不小心将顶部的工具栏给隐藏了,弄了半天都没弄出来.后来就在网上到处寻找帮助,试试这个试试那个,终于弄好了,其实是这样的. 首先在任 ...