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
大型对象数据类型列中要比较的字节数,这些数据类型包括:textntextimagevarchar(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 smallintint 或 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)

  • timestamp

  • xml

  • text

  • ntext

  • image

权限

若要比较表,您必须有要比较的表对象的 SELECT ALL 权限。

若要使用 -et 选项,必须是 db_owner 固定数据库角色的成员,或者在订阅数据库中至少拥有 CREATE TABLE 权限,并且对目标服务器中的目标所有者架构拥有 ALTER 权限。

若要使用 -dt 选项,必须是 db_owner 固定数据库角色的成员,或者至少对目标服务器中的目标所有者架构拥有 ALTER 权限。

若要使用 -o 或 -f 选项,必须对指定的文件目录位置拥有写入权限。

Sqlserver tablediff的简单使用的更多相关文章

  1. SQLSERVER性能计数器的简单剖析

    SQLSERVER性能计数器的简单剖析 今晚看了这篇文章:SQL Server 2012新performance counter:非常实用的Batch Resp Statistics 文章里介绍到SQ ...

  2. 原创SQlServer数据库生成简单的说明文档小工具(附源码)

    这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...

  3. 创建并在项目中调用SQLSERVER存储过程的简单示例

    使用SQLSERVER存储过程可以很大的提高程序运行速度,简化编程维护难度,现已得到广泛应用.创建存储过程 和数据表一样,在使用之前需要创建存储过程,它的简明语法是: 引用: Create PROC ...

  4. 原创SQlServer数据库生成简单的说明文档包含(存储过程、视图、数据库批量备份)小工具(附源码)

    这是一款简单的数据库文档生成工具,主要实现了SQlServer生成说明文档的小工具,目前不够完善,主要可以把数据库的表以及表的详细字段信息,导出到 Word中,可以方便开发人员了解数据库的信息或写技术 ...

  5. sqlserver tablediff 实用工具

    tablediff 是sqlserver自带的实用工具 sqlserver 2012 在110目录下,sqlserver2008在100目录下 官方参考文档如下: https://docs.micro ...

  6. 使用asp.net mvc + entityframework + sqlServer 搭建一个简单的code first项目

    步骤: 1. 创建一个asp.net mvc 项目 1.1 项目创建好结构如下 2 通过vs安装EntityFramework框架 install-package entityframework 3. ...

  7. Linux 下面 Sqlserver 2017 的简单安装

    1. 公司网络太烂 yum 在线安装失败 2. 解决方法 找微软的官网 百度网盘 离线下载rpm包. https://packages.microsoft.com/rhel/7/mssql-serve ...

  8. Sqlserver 系统视图简单说明

    1. 查看系统视图的sql语句 select * from sys.system_views 2. 查看所有的 dynamic management 视图的sql select * from sys. ...

  9. SQLserver 一种简单的GUI方式创建DBlink copy 表数据的方法

    1. 在sqlserver 上面使用GUI的方式创建dblink 首先打开查询分析器 在如下的位置处右键 -新建连接服务器 输入需要copy数据的服务器 输入ip地址 然后建立连接 在打开查询分析器进 ...

随机推荐

  1. 4、爬虫系列之mongodb

    mongodb mongo简介 简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数 ...

  2. 【Teradata】tdlocaledef修改默认日期配置

    如下所有操作需要使用root登录到TD数据库节点操作 1.获取数据库当前默认配置 //使用root登录TD数据库节点 cd /opt/teradata/tdat/tdbms/xx.xx.xx.xx/b ...

  3. Apache Curator is a Java/JVM client library for Apache ZooKeeper

    http://curator.apache.org/index.html Welcome to Apache Curator What is Curator? Curator n ˈkyoor͝ˌāt ...

  4. 【转】Vue组件一-父组件传值给子组件

    Vue组件一-父组件传值给子组件 开始 Vue组件是学习Vue框架最比较难的部分,而这部分难点我认为可以分为三个部分学习,即 组件的传值 - 父组件向子组件中传值 事件回馈 - 子组件向父组件发送消息 ...

  5. JWT 认证 以及Django 中的应用

    jwt 认证 私钥.公钥.CA认证 用一套加密规则 加密和解密 RSA加密 (非对称的加密) 摘要算法:MD5 FTP/互联网下载软件校验MD5 私钥 --RSA算法-->公钥 RSA原理 加密 ...

  6. Spring将Bean导入IOC容器

    @Import 注解可以普通类导入到 IoC容器中. 想要让一个普通类接受 Spring 容器管理,有以下方法 使用 @Bean 注解 使用 @Controller @Service @Reposit ...

  7. Oracle补丁术语介绍

    在使用Oracle的技术支持服务的时候,经常会遇到补丁相关的术语.现在对这些术语做些解释说明: Interim patch/One-off patch:是我们常说的小补丁,为了修复某(几)个Bug而发 ...

  8. Java序列化由于没有指定serialVersionUID导致报错

    z.JobPersistenceException: Couldn't retrieve job because the BLOB couldn't be deserialized: com.mode ...

  9. 【vue】vue中ref用法

    1.获取当前元素: 例子: <div class="pop pos-a" :style="{ left: pop_x + 'px' ,top: pop_y + 'p ...

  10. Linux 使用nexus搭建maven私服

    系统:LINUX           JDK:已安装           Maven:已安装           Nexus Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维 ...