有没有办法解决这个问题啊?谢谢各位的参与!

plutu 2007-08-17 10:01:35
我现在有一个这样的问题:一个远程的数据库中要需要本地的一个表中的数据,两台服务器都在一个局域网上,但远程的那个只有白天有人用,下班后就会关掉,也就是相当于两台服务器直接的网络有时中断,有没有好的方法使远程的那台服务器正常时把那个表中没有的数据自动补上,并且当本地服务器的那个表中有新记录时自动插入远程的那个中去?在线等候各位的好点子
...全文
224 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
fckadxz 2007-08-19
  • 打赏
  • 举报
回复
用触发器和作业都可以。

有个技术问题是,远程数据库有时连结有时断开,如果作频繁连结测试会影响到本地数据库性能。

所以比较简便的办法是:由远程数据库定时往本地数据库里写标志数据,表示“我还在线”,然后由本地数据库的触发器或作业,根据这个标志数据,更新远程数据库的表。
wdtking 2007-08-18
  • 打赏
  • 举报
回复
我觉得还是用触发器,当本地表改变时触发一个存储过程,
然后用bcp去更新远程的数据库
yrwx001 2007-08-17
  • 打赏
  • 举报
回复
所以只能在遠程端操作啊.
plutu 2007-08-17
  • 打赏
  • 举报
回复
因此要求能在有网络错误时不能影响本地的服务器,网络恢复时自动补上那些数据
mengmou 2007-08-17
  • 打赏
  • 举报
回复
能不能改成本地当有新记录时主动写到远程的表中呢
----------
你不能保证有新记录时另一台服务器总是开着,所以肯定不能啊
plutu 2007-08-17
  • 打赏
  • 举报
回复
谢谢楼上的各位,这是远程主动去取,能不能改成本地当有新记录时主动写到远程的表中呢?
yrwx001 2007-08-17
  • 打赏
  • 举报
回复
就是寫個前台工具程式,在開機時就運行這歌程式,這個程式裡用上timer 控件 每隔一段時間就對 本地庫 A庫進行探測,更新.這個辦法肯定可行
yrwx001 2007-08-17
  • 打赏
  • 举报
回复
本地庫 B 的 tb2 insert 到 A.tb1
-------------------------------------
在遠程庫 A 中建過程如下

create proc sp_test()
as
insert tb1
select * from
(SELECT a.*
FROM OPENROWSET('SQLOLEDB','seattle1';'sa';'MyPass',
'SELECT * FROM B.dbo.tb2') AS a)D
where not exists (select 1 from tb1 where tb1.key = D.key)

然後在前台的timer 控件裡面,每隔一段時間久調用這個過程
plutu 2007-08-17
  • 打赏
  • 举报
回复
就是这个问题啊,如果网络断了或服务器没开怎么办?
mengmou 2007-08-17
  • 打赏
  • 举报
回复
有没有好的方法使远程的那台服务器正常时把那个表中没有的数据自动补上
---------
这个可以用作业


并且当本地服务器的那个表中有新记录时自动插入远程的那个中去
-----------------
这个不能吧,你能保证有新记录插入时另外一个服务器是一定开着的么?
plutu 2007-08-17
  • 打赏
  • 举报
回复
在存储过程中怎么定义远程的数据库?不能在固定时间,因为有新记录就插到远程的那个数据库中
yrwx001 2007-08-17
  • 打赏
  • 举报
回复
用作業,每天到固定的時間點就自動更新遠程庫
mugua604 2007-08-17
  • 打赏
  • 举报
回复
开机就运行存储过程?可以不?
fcuandy 2007-08-17
  • 打赏
  • 举报
回复
这个工作适合用JOB,用触发器不合适.
plutu 2007-08-17
  • 打赏
  • 举报
回复
还有为什么在查询分析器中能执行,放到触发器中就不能执行了呢?
Ray_Zhang 2007-08-17
  • 打赏
  • 举报
回复
无论在本地还是在远程的数据库上,编写DTS然后在定制job就可以了。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧