/*

--启用CMDshell
;EXEC sp_configure 'show advanced options', 1
;RECONFIGURE WITH OVERRIDE --
;EXEC sp_configure 'xp_cmdshell', 1
;RECONFIGURE WITH OVERRIDE
;EXEC sp_configure 'show advanced options', 0

*/
SET NOCOUNT ON

DECLARE @difftablesql VARCHAR(6000)
DECLARE @outputfile VARCHAR(400)
DECLARE @deloldoutputfile VARCHAR(400)

DECLARE @sourceserver VARCHAR(400)
DECLARE @sourceuser VARCHAR(400)
DECLARE @sourcepassword VARCHAR(400)
DECLARE @sourcedatabase VARCHAR(400)
DECLARE @sourcetable VARCHAR(400)

DECLARE @destinationserver VARCHAR(400)
DECLARE @destinationuser VARCHAR(400)
DECLARE @destinationpassword VARCHAR(400)
DECLARE @destinationdatabase VARCHAR(400)
DECLARE @destinationtable VARCHAR(400)

SET @sourceserver = '.\sql2005'
SET @sourceuser = 'sa'
SET @sourcepassword = 'abc.123'
SET @sourcedatabase = 'DatabaseA'
SET @sourcetable = 'SourceTable'
 
 SET @destinationserver = '.\sql2005A'
 SET @destinationuser = 'sa'
 SET @destinationpassword = 'abc.123'
 SET @destinationdatabase = 'DatabaseB'
 SET @destinationtable = 'SourceTable'
 
SET @outputfile='C:\diffs.sql'
SET @deloldoutputfile='del '+@outputfile

--C:\Program Files\Microsoft SQL Server\100\COM\tablediff.exe --添加到环境
SET @difftablesql ='tablediff.exe '
SET @difftablesql =@difftablesql+' -sourceserver "'+@sourceserver+'"'
SET @difftablesql =@difftablesql+' -sourceuser "'+@sourceuser+'"'
SET @difftablesql =@difftablesql+' -sourcepassword "'+@sourcepassword+'"'
SET @difftablesql =@difftablesql+' -sourcedatabase "'+@sourcedatabase+'"'
SET @difftablesql =@difftablesql+' -sourcetable "'+@sourcetable+'"'

SET @difftablesql =@difftablesql+' -destinationserver "'+@destinationserver+'"'
SET @difftablesql =@difftablesql+' -destinationuser "'+@destinationuser+'"'
SET @difftablesql =@difftablesql+' -destinationpassword "'+@destinationpassword+'"'
SET @difftablesql =@difftablesql+' -destinationdatabase "'+@destinationdatabase+'"'
SET @difftablesql =@difftablesql+' -destinationtable "'+@destinationtable+'"'

SET @difftablesql =@difftablesql+' -sourcelocked -destinationlocked  -f "' +@outputfile+'"'
 
PRINT  @difftablesql
EXEC master..xp_cmdshell @deloldoutputfile
EXEC master..xp_cmdshell @difftablesql

DECLARE @sqlcmd VARCHAR(6000)
 
set @sqlcmd='sqlcmd '
set @sqlcmd=@sqlcmd+'  -S "'+ @destinationserver+'"'
set @sqlcmd=@sqlcmd+'  -U "'+ @destinationuser+'"'
set @sqlcmd=@sqlcmd+'  -P "'+ @destinationpassword+'"'
set @sqlcmd=@sqlcmd+'  -d "'+ @destinationdatabase+'"'
set @sqlcmd=@sqlcmd+'  -i "'+ @outputfile+'"'

PRINT @sqlcmd
EXEC master..xp_cmdshell @sqlcmd

--EXEC master..xp_cmdshell @deloldoutputfile

SELECT *  FROM  DatabaseA.dbo.SourceTable
SELECT *  FROM  [2005a].DatabaseB.dbo.SourceTable

转载于:https://www.cnblogs.com/qanholas/archive/2012/03/10/2389316.html

tablediff同步相关推荐

  1. Linux面试必问-vim综合命令详解

    vi编辑器是Unix的世界中一个相当强大的可视化编辑器,有人曾这样的说过在世界上有三种人:一种是使用Vi的,另一种是使用是Emacs的,剩下的是第三种人. 由此可以看出Vi和Emacs的强大.在有关L ...

  2. 比较和同步两个SQL Server数据库之间的图像

    介绍 (Introduction) Sometimes we lose data by mistake and we want to compare the data with older backu ...

  3. ubuntu 修改时区、时间、同步网络时间、将时间写入硬件

    查看系统当前的时间状态 $ timedatectl statusLocal time: 六 2021-10-30 09:33:37 CSTUniversal time: 六 2021-10-30 01 ...

  4. Go 学习笔记(66)— Go 并发同步原语(sync.Mutex、sync.RWMutex、sync.Once)

    1. 竞态条件 一旦数据被多个线程共享,那么就很可能会产生争用和冲突的情况.这种情况也被称为竞态条件(race condition),这往往会破坏共享数据的一致性. 举个例子,同时有多个线程连续向同一 ...

  5. Python 多线程总结(2)— 线程锁、线程池、线程数量、互斥锁、死锁、线程同步

    主要介绍使用 threading 模块创建线程的 3 种方式,分别为: 创建 Thread 实例函数 创建 Thread 实例可调用的类对象 使用 Thread 派生子类的方式 多线程是提高效率的一种 ...

  6. 同步与异步,阻塞与非阻塞的区别

    1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...

  7. 线程的状态、调度、同步

    线程的状态 java中的线程共五个状态:新建.就绪.运行.阻塞.死亡: 新建状态(New):处于系统创建线程,但未启动此线程,系统未为其分配资源. 就绪状态(Runnable):线程调用start( ...

  8. GIT上传服务器同步到web目录

    实现自动同步到站点目录(www) 就比如刚才我们往远程仓库推送了index.php文件,虽然提示推送成功,但是我们现在在服务器端还看不到效果,心理总是不爽.又比如我写了个html页面,我想在站点中马上 ...

  9. Java 异步与同步的区别

    同步: 所有操作完成之后,才会通知用户操作完成了. 异步:不用等所有操作完成之后,就会通知用户操作完成了,然后后台会继续操作直到完成结束. 为了方便理解 举例个常见的 android 网络请求使用的异 ...

最新文章

  1. rhel5+nis+autofs+nfs
  2. golang map 排序 key value
  3. CI 模型公用查询函数
  4. 【征稿进行时】计算机与智能控制主题征稿,ICCEIC 2020持续征稿中!
  5. 基于EasyNVR二次开发实现业务需求:用户、权限、设备管理
  6. hadoop二次排序
  7. usb接口供电不足_AMD RX 6000 系列显卡配备USB-C 接口,支持外接供电
  8. 陈年佳酿之 - Winform ListView 控件 double click 事件中获取选中的row与column
  9. LeetCode每日一题:14.longest-common-prefix(最长公共前缀)
  10. java applet布局_Java:Applet布局问题
  11. 英特尔开源计算机视觉数据标签工具CVAT,加速数据注释
  12. Linux学习之Linux系统目录简概
  13. Python Selenium的下载和安装
  14. 01web前端笔试试题
  15. C语言程序设计孙家啸第一版,广东(年4月自考各专业课程使用教材.doc
  16. 中兴新支点操作系统_中兴新支点操作系统的设计和功能怎样?
  17. matlab 定义结构体数组,结构体数组及其定义和使用,C语言结构体数组详解
  18. 关于图片或者文件在数据库的存储方式归纳
  19. [Error] expected primary-expression before '' token是什么意思
  20. kafka-manger监控部署

热门文章

  1. python依赖包是什么意思_Python引入依赖curses包的坑
  2. (16)Verilog模块例化-基本语法(四)(第4天)
  3. FPGA复位激励编写(方法三)
  4. Xilinx PLL IP核功能仿真
  5. bind mysql django_Django+bind dlz DNS管理平台
  6. linux清除硬盘,linux下清除硬盘的几种方法
  7. Python文件操作2
  8. 用电脑更新手机ios系统_macOS 11正式版:大更新!苹果把iOS风格搬到了电脑上
  9. linux路由内核实现分析(二)---FIB相关数据结构(3)
  10. 【JAVA】接口中的default和static方法