使用脚本导入/导出数据的问题-高分求解!
问题描述:(都是SQL Server数据库)
本地数据库A,远程数据库B,现在想把A里的部分表的部分数据和部分视图的查询结果的数据上传到远程里面,请问具体应该怎么实现???
因为两个数据库之间是物理隔离的,所以暂时想使用程序控制定时触发调用脚本的方式来实现同步数据,不准备使用类似SQL Server 自带的DTS等功能。
其它:同理,在同一个局域网里,想从一个库把某个表的数据导入到另一台机器的数据库里已有表里。应该实现方式一样吧。
问题点数:100、回复次数:10Top
1 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2006-03-03 11:23:56 得分 10
如果两个库之间是可以连接的,创建链接服务器,用SQL语句实现导入/导出。
如果两个库之间是物理隔离的,用一个通用存储过程导出源数据库的数据并形成脚本,然后提交到目的服务器上运行。Top
2 楼wgsasd311(自强不息)回复于 2006-03-03 11:26:17 得分 20
--把下面IP换成服务器实际IP
exec sp_addlinkedserver '192.168.18.32','SQL Server'
exec sp_addlinkedsrvlogin '192.168.18.32',false,null,'sa','pwd'
select * from [192.168.18.32].[ystdata2].[dbo].[h_order]
exec sp_droplinkedsrvlogin '192.168.18.32',null
exec sp_dropserver '192.168.18.32'Top
3 楼progra(不学无数又富于幻想的人,虽有翅膀却无双脚)回复于 2006-03-03 11:42:26 得分 0
to libin_ftsafe(子陌红尘):
先谢了!能不能就物理隔离的那种方式给个例子Top
4 楼wgsasd311(自强不息)回复于 2006-03-03 12:17:47 得分 0
采取数据发布与订阅(事物型)可以做到楼主的要求Top
5 楼zjcxc(邹建)回复于 2006-03-03 12:38:06 得分 0
物理隔离的??
至少中间有一台服务器能连接同时连接到两个服务器吧?
这种情况下写DTS包就可以了.
在中间服务器上运行DTS包, DTS包的源和目标的数据源指定一下, 两者之间就可以直接交换数据, 效率应该是最高的.Top
6 楼progra(不学无数又富于幻想的人,虽有翅膀却无双脚)回复于 2006-03-03 12:56:02 得分 0
to zjcxc(邹建) :
对啊,中间是有一台可以同时链接两个服务器的机器。
最好可以用程序加脚步的方式来实现,因为中间那天机器不一定有SQL ServerTop
7 楼progra(不学无数又富于幻想的人,虽有翅膀却无双脚)回复于 2006-03-03 16:26:04 得分 0
upTop
8 楼progra(不学无数又富于幻想的人,虽有翅膀却无双脚)回复于 2006-03-06 15:51:14 得分 0
upTop
9 楼lovcal(枫兮)回复于 2006-03-06 15:58:51 得分 20
to zjcxc(邹建) :
对啊,中间是有一台可以同时链接两个服务器的机器。
最好可以用程序加脚步的方式来实现,因为中间那天机器不一定有SQL Server
===============================================
DTS包运行不依靠SQLServer,也就是你直接写好DTS包之后,保存为结构化储存文件,然后在命令行里(放在批处理文件中)就可以运行
如:
在文本文件中写dtsrun /f C:/test.dts 然后保存为www.bat文件,双击执行这文件即可,这样你也可以用写程序调度执行
关于dtsrun命令,你可以再查查SQLServer联机帮助,了解得详细一些,挺好用的Top
10 楼zjcxc(邹建)回复于 2006-03-06 17:36:03 得分 50
dts包不依赖于sql服务, 所以并不需要你安装sql server.
另:
DTS包可以存储为Visual Basic文件, 换句话说, 你创建好dts包, 另存为VB代码, 就可以使用VB编译和增加你自己的功能, 这样就是写程序实现了Top




