用TableDiff产生SQL Server同步脚本

TableDiff是一个控制台,它可以在SQL Server的表之间进行数据比较。另外,因为它是用SQL Server打包的,所以如果你想在不同的数据库环境下检查查找表的话,你就不需要另外购买其他工具。

在不同的数据库环境中,DBA经常不得不在查找表中寻找它们的不同(例如:开发、质量保证和生产等不同的环境下)。这些查找表中的数据必须适应于所有的环境,这样才能确保测试的准确。

在市场上有一些非常好的工具可以进行这些比较,也能执行很多其它功能。但是现在你不需要去购买它们了,因为SQL Server已经自带了这种工具,那就是TableDiff,它能为你完成这些功能。

TableDiff使你可以很轻松地在表中进行数据比较,同时它也可以会为你创建脚本来同步程序环境。另外,作为一个能使查找表在测试环境和产品环境之间同步的优秀工具,TableDiff对于数据在产品服务器和复制服务器之间的同步也同样是非常有用的,这样,当发生复制问题的时候,它就能体现出优势了。

示例

TabelDiff是一个控制台应用软件,所以,你需要通过命令提示符、批处理文件或者通过使用xp_cmdshell的SQL Server来调用它。在这个例子中,我将在同一个服务器上的两个数据库之间搭建一个小的环境,然后比较两个表中的数据。在这里我是通过一个批处理文件来调用TableDiff。

Listing A中的脚本创建了两个数据库,并在每个数据库中创建了一个SourceTable表。然后将数据分别插入到每个环境中的SourceTable表里面,这时候,插入到两个表中的数据是明显不同的。(就我的SQL Server 2005环境而言,TableDiff在这个目录下:C:Program FilesMicrosoft SQL ServerCOM。文件的位置对你指定安装是非常重要的,因为你调用批处理文件进行创建的时候需要知道它的确切位置。)

时间: 2025-01-05 15:11:07

用TableDiff产生SQL Server同步脚本的相关文章

access数据库-access连接sql server同步更新问题

问题描述 access连接sql server同步更新问题 电脑A数据采集用的是access每天更新一张新表,连接服务器B的sql server同步更新也是一天一张新表,利用什么方式可以解决? 解决方案 用C#写个windows服务程序或winform客户端,定时获取sql server,写入access. 解决方案二: SQL Server和Access中的条件判断语法(case when和iff)连接到数据庫(ACCESSSQL SERVER)两台SQL Server服务器同步问题.

简单的SQL Server备份脚本代码_MsSql

一般的情况下我们会选用SQL Server自带的数据库维护计划来定义备份. 但有些时候,有的机器数据库维护计划不能成功实现备份.  错误原因可能不尽相同, 这时我们可以用简单的SQL Server备份脚本来做备份. 生成简单的SQL Server备份脚本的SQL语句:   use master   select 'backup database '+name+' to disk=''F:\sqlserver_backup\'+name+'.bak'' with init' from sysdat

分析下自己写的SQL Server同步工具的性能和缺陷

分析下自己写的SQL Server同步工具的性能和缺陷 1. C#同步SQL Server数据库Schema 2. C#同步SQL Server数据库中的数据--数据库同步工具[同步新数据]   通过测试我写的同步程序,得出结论: 1.程序第一次调用SQLBulkCopy会耗时较长 2.同步程序放在目标机器在耗时方面相对少些 测试数据: declare @varI varchar(200) set @varI=0 while(@varI<100000) begin set @varI=@varI

简单的SQL Server备份脚本代码

一般的情况下我们会选用SQL Server自带的数据库维护计划来定义备份. 但有些时候,有的机器数据库维护计划不能成功实现备份.  错误原因可能不尽相同, 这时我们可以用简单的SQL Server备份脚本来做备份. 生成简单的SQL Server备份脚本的SQL语句:   use master   select 'backup database '+name+' to disk=''F:\sqlserver_backup\'+name+'.bak'' with init' from sysdat

实用的sql server日常检查脚本

sqlserver 日常检查脚本 print '----------------------------' print ' 0.sqlserver all information ' print '----------------------------' print ' ' print '*********************************' --Step 1: Setting NULLs and quoted identifiers to ON and checking the

从一个目录的备份文件中自动产生SQL Server恢复脚本

问题 数据库管理员眼下的一个挑战是备份和恢复数据库.备份在自动调度表中完成,但是恢复可以采取很多不同的版本,你可能需要恢复一个产品数据库,恢复一个发展包,或者测试数据库,或者只在另外的地方创建数据库副本.有一些自动执行恢复过程和创建脚本的方法,但是这个方法显示了一种方式,那就是只读取存在于备份文件中的目录的内容. 专家解答 以下是读取目录中的内容和创建需要通过执行来恢复数据库的恢复命令的一种简单方法.这个脚本可以用于全部备份,差异备份和事务日志备份. 在我们开始之前,下面的脚本假设情况如下: 1

CodeSmith生成SQL Server视图的实体类脚本

第一个文件是businessobjctforView.cst,生成C#实体类,此脚本需要引用第二个文件CommonUtility.cs.需将两个文件放在同一目录中. <%@ CodeTemplate Language="C#" TargetLanguage="T-SQL" Description="Generates a update stored procedure." %><%@ Assembly Name="Sc

sql server自动生成批量执行SQL脚本的批处理

  场景: DBA那边给我导出了所有的存储.函数等等对象的创建脚本,有上千个文件. 现在需要将这些对象创建脚本导入到另外一个库,如何解决呢? 手动一个个执行显然不太现实. 于是手动写了一个批处理,将所有的文件形成一个.SQL的脚本,最后以@生成的.SQL脚本方式导入到目标库中. OS环境:WINDOWS xp 脚本内容如下: @echo off if exist list.sql del list.sql /q :input cls set input=: set /p input= 请输入要进

SQL Server查询数据库中表使用空间信息实现脚本_MsSql

使用了微软提供的不公开的存储过程sp_MSforeachtable   CREATE TABLE #temp ( TableName NVARCHAR (128), RowsCnt VARCHAR (11), ReservedSpace VARCHAR(18), DataSpace VARCHAR(18), CombinedIndexSpace VARCHAR(18), UnusedSpace VARCHAR(18) ) EXEC sp_MSforeachtable'INSERT INTO #t