Sqlserver tablediff的简单使用
1. 先列举一下自己简单的比较语句
tablediff -sourceserver 10.24.160.73 -sourcedatabase cwbasemi70 -sourceschema lcmi709999 -sourcetable gspuser -destinationserver 10.24.160.94 -destinationdatabase cwbasemi70 -destinationschema lcmi709999 -destinationtable gspuser -strict
效果为:

如果简单对比的话 可以使用:

注意一下官网的说明:
tablediff 实用工具
- 2017/03/06
- 作者
tablediff 实用工具用于比较两个非收敛表中的数据,它对于排除复制拓扑中的非收敛故障非常有用。 可以从命令提示符或在批处理文件中使用该实用工具执行以下任务:
在充当复制发布服务器的 Microsoft SQL Server 实例中的源表与充当复制订阅服务器的一个或多个 SQL Server 实例中的目标表之间进行逐行比较。
通过只比较行数和架构可以执行快速比较。
执行列级比较。
生成 Transact-SQL 脚本,用以修复目标服务器中的差异,以使源表和目标表实现收敛。
将结果记录到输出文件或目标数据库的表中。
语法
tablediff
[ -? ] |
{
-sourceserversource_server_name[\instance_name]
-sourcedatabasesource_database-sourcetablesource_table_name
[ -sourceschemasource_schema_name ]
[ -sourcepasswordsource_password ]
[ -sourceusersource_login ]
[ -sourcelocked ]
-destinationserverdestination_server_name[\instance_name]
-destinationdatabasesubscription_database-destinationtabledestination_table
[ -destinationschemadestination_schema_name ]
[ -destinationpassworddestination_password ]
[ -destinationuserdestination_login ]
[ -destinationlocked ]
[ -blarge_object_bytes ]
[ -bfnumber_of_statements ]
[ -c ]
[ -dt ]
[ -ettable_name ]
[ -f [ file_name ] ]
[ -ooutput_file_name ]
[ -q ]
[ -rcnumber_of_retries ]
[ -riretry_interval ]
[ -strict ]
[ -tconnection_timeouts ]
}
参数
[ -? ]
返回支持参数的列表。
-sourceserver source_server_name[\instance_name]
源服务器的名称。 指定_源_服务器_名称_的默认实例为SQL Server。 指定_源_服务器_名称_\_实例_名称_对于命名实例的SQL Server.
-sourcedatabase source_database
源数据库的名称。
-sourcetable source_table_name
正在检查的源表的名称。
-sourceschema source_schema_name
源表的架构所有者。 默认情况下,表所有者假定为 dbo。
-sourcepassword source_password
使用 SQL Server 身份验证连接到源服务器时所使用的登录帐户的密码。
重要
可能的话,请在运行时提供安全凭据。 如果必须在脚本文件中存储凭据,则应保护文件以防止未经授权的访问。
-sourceuser source_login
使用 SQL Server 身份验证连接到源服务器时所使用的登录帐户。 如果未提供 source_login ,则连接到源服务器时使用 Windows 身份验证。 请尽可能使用 Windows 身份验证。
-sourcelocked
在使用 TABLOCK 和 HOLDLOCK 表提示的比较过程中锁定源表。
-destinationserver destination_server_name[\实例_名称]
目标服务器的名称。 指定 destination_server_name source_server_name SQL Server。 指定_目标_服务器_名称_\_实例_名称_对于命名实例的SQL Server.
-destinationdatabase subscription_database
目标数据库的名称。
-destinationtable destination_table
目标表的名称。
-destinationschema destination_schema_name
目标表的架构所有者。 默认情况下,表所有者假定为 dbo。
-destinationpassword destination_password
使用 SQL Server 身份验证连接到目标服务器时所使用的登录帐户的密码。
重要
可能的话,请在运行时提供安全凭据。 如果必须在脚本文件中存储凭据,则应保护文件以防止未经授权的访问。
-destinationuser destination_login
使用 SQL Server 身份验证连接到目标服务器时所使用的登录帐户。 如果未提供 destination_login ,则连接到该服务器时使用 Windows 身份验证。 请尽可能使用 Windows 身份验证。
-destinationlocked
在使用 TABLOCK 和 HOLDLOCK 表提示的比较过程中锁定目标表。
-b large_object_bytes
大型对象数据类型列中要比较的字节数,这些数据类型包括:text、ntext、image、varchar(max)、nvarchar(max) 和 varbinary(max)。 large_object_bytes 默认为列的大小。 任何大于 large_object_bytes 的数据不会进行比较。
-bf number_of_statements
使用 Transact-SQL -f Transact-SQL 选项时要写入到当前 脚本文件中的 语句数。 当 Transact-SQL 语句数超过 number_of_statements时,将创建一个新的 Transact-SQL 脚本文件。
-c
比较列级差异。
-dt
删除 table_name指定的结果表(如果该表已经存在)。
-et table_name
指定要创建的结果表的名称。 如果该表已经存在,则必须使用 -DT ,否则操作将失败。
-f [ file_name ]
生成 Transact-SQL 脚本,以使目标服务器中的表与源服务器中的表实现收敛。 (可选)可以指定生成的 Transact-SQL 脚本文件的名称和路径。 如果未指定 file_name ,则会在运行实用工具的目录中生成 Transact-SQL 脚本文件。
-o output_file_name
输出文件的完整名称和路径。
-q
通过只比较行数和架构可以执行快速比较。
-rc number_of_retries
实用工具重试失败操作的次数。
-ri retry_interval
两次重试之间的等待间隔(秒)。
-strict
对源架构和目标架构进行严格比较。
-t connection_timeouts
设置与源服务器和目标服务器连接时的连接超时时间(秒)。
返回值
| ReplTest1 | Description |
|---|---|
| 0 | 成功 |
| 1 | 严重错误 |
| 2 | 存在表差异 |
备注
tablediff 实用工具不能用于非SQL Server 服务器。
不支持包含 sql_variant 数据类型列的表。
默认情况下, tablediff 实用工具支持源列和目标列之间的以下数据类型映射。
| 源数据类型 | 目标数据类型 |
|---|---|
tinyint |
smallint、int 或 bigint |
smallint |
int 或 bigint |
int |
bigint |
timestamp |
varbinary |
varchar(max) |
text |
nvarchar(max) |
ntext |
varbinary(max) |
image |
text |
varchar(max) |
ntext |
nvarchar(max) |
image |
varbinary(max) |
使用 -strict 选项可禁止这些映射,并执行严格验证。
进行比较的源表必须至少包含一个主键、标识或 ROWGUID 列。 使用 -strict 选项时,目标表也必须具有一个主键、标识或 ROWGUID 列。
所生成的使目标表实现收敛的 Transact-SQL 脚本不包括下列数据类型:
varchar(max)nvarchar(max)varbinary(max)timestampxml
textntextimage
权限
若要比较表,您必须有要比较的表对象的 SELECT ALL 权限。
若要使用 -et 选项,必须是 db_owner 固定数据库角色的成员,或者在订阅数据库中至少拥有 CREATE TABLE 权限,并且对目标服务器中的目标所有者架构拥有 ALTER 权限。
若要使用 -dt 选项,必须是 db_owner 固定数据库角色的成员,或者至少对目标服务器中的目标所有者架构拥有 ALTER 权限。
若要使用 -o 或 -f 选项,必须对指定的文件目录位置拥有写入权限。
Sqlserver tablediff的简单使用的更多相关文章
- SQLSERVER性能计数器的简单剖析
SQLSERVER性能计数器的简单剖析 今晚看了这篇文章:SQL Server 2012新performance counter:非常实用的Batch Resp Statistics 文章里介绍到SQ ...
- 原创SQlServer数据库生成简单的说明文档小工具(附源码)
这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...
- 创建并在项目中调用SQLSERVER存储过程的简单示例
使用SQLSERVER存储过程可以很大的提高程序运行速度,简化编程维护难度,现已得到广泛应用.创建存储过程 和数据表一样,在使用之前需要创建存储过程,它的简明语法是: 引用: Create PROC ...
- 原创SQlServer数据库生成简单的说明文档包含(存储过程、视图、数据库批量备份)小工具(附源码)
这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...
- sqlserver tablediff 实用工具
tablediff 是sqlserver自带的实用工具 sqlserver 2012 在110目录下,sqlserver2008在100目录下 官方参考文档如下: https://docs.micro ...
- 使用asp.net mvc + entityframework + sqlServer 搭建一个简单的code first项目
步骤: 1. 创建一个asp.net mvc 项目 1.1 项目创建好结构如下 2 通过vs安装EntityFramework框架 install-package entityframework 3. ...
- Linux 下面 Sqlserver 2017 的简单安装
1. 公司网络太烂 yum 在线安装失败 2. 解决方法 找微软的官网 百度网盘 离线下载rpm包. https://packages.microsoft.com/rhel/7/mssql-serve ...
- Sqlserver 系统视图简单说明
1. 查看系统视图的sql语句 select * from sys.system_views 2. 查看所有的 dynamic management 视图的sql select * from sys. ...
- SQLserver 一种简单的GUI方式创建DBlink copy 表数据的方法
1. 在sqlserver 上面使用GUI的方式创建dblink 首先打开查询分析器 在如下的位置处右键 -新建连接服务器 输入需要copy数据的服务器 输入ip地址 然后建立连接 在打开查询分析器进 ...
随机推荐
- Vue修改、编辑时,撤销修改内容,表格内容不变
在编辑该行的过程中,突然不想编辑了,想点击撤销按钮,将该行数据恢复到旧值,目前的做法是,在点击编辑按钮的时候转换成json字符,点击撤销按钮的时候再解析成对象,赋值给该行的数据. // 编辑editH ...
- python入门学习:8.类
python入门学习:8.类 关键点:类 8.1 创建和使用类8.2 使用类和实例8.3 继承8.4 导入类 8.1 创建和使用类 面向对象编程是最有效的软件编写方法之一.在面向对象编程中,你编写 ...
- echarts 中国地图实现 省、市、区县三级联动,省级下钻、市级下钻
每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 效果如下图: 每天学习一点点 编程PDF电子书.视频教程免费下载:http://www ...
- (1) 安卓导入mqtt包基本通信
参考资料:http://blog.csdn.net/qq_17250009/article/details/52774472 MQTT官网:http://mqtt.org/ MQTT介绍:http:/ ...
- tomcat (选号)公司tomcat无页面解决
问:我现在的有的解决方法就是把上一次war包下下载下来,在重启tomcat 答:那不行,更新war包就没有意义了,你都没排查故障 就直接说war包少东西?主页都没有..还能少主页也不是404.war ...
- GDB 命令回顾
0) 为使用 GDB, 编译时需要加入调试信息 -g 选项,例如, $ gcc -g test.c -o test 1) 使用 GDB 开始调试 $ gdb test 也可以, $ gdb $ fil ...
- 爬虫之selenium模拟点击
在利用爬虫爬取页面HTML信息得时候有的当你运用request方法爬取时爬下来得HTML信息和网站信息不相符,这也导致以后得爬去无法进行,这也是反扒机制之一,解决办法时利用代码进行模拟网页点击,来爬去 ...
- centos7 开放3306端口并可以远程访问
开启远程访问: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 允许任何ip以roo ...
- 蓝牙LMP概述
LMP 全称是Link Manager Protocol,我们还是要一张图,说明LMP 在哪里? 他是在HCI 以下,baseband 以上,实现在蓝牙控制器中. 按照协议规范,我们分几个部分来分别介 ...
- Python股票分析系列——自动获取标普500股票列表.p5
该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第5部分.在本教程和接下来的几节中,我们将着手研究如何为更多公司提供大量的定价信息,以及如何一次 ...
