标题:两数据库同步更新求编程解答
只看楼主
黑夜轮回
Rank: 2
等 级:论坛游民
帖 子:16
专家分:18
注 册:2016-9-3
结帖率:100%
已结贴  问题点数:20 回复次数:8 
两数据库同步更新求编程解答
我有两个数据库的主机,A,B的SD06=1,当A的SD06=0,B的SD06=1时,将B的SD06更新为0;
反之,当B的SD06=0,A的SD06=1时,将A的SD06更新为0。
搜索更多相关主题的帖子: 数据库同步 主机 
2016-09-07 18:12
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用黑夜轮回在2016-9-7 18:12:43的发言:

我有两个数据库的主机,A,B的SD06=1,当A的SD06=0,B的SD06=1时,将B的SD06更新为0;
反之,当B的SD06=0,A的SD06=1时,将A的SD06更新为0。

看不明白!
1、是数据库分别在2台电脑上?如电脑A,电脑B
2、还是有2个数据库,但是在同1台电脑上,同1个版本的SQL2000中?
3、SD06是某个表的字段名称?
2016-09-08 17:57
黑夜轮回
Rank: 2
等 级:论坛游民
帖 子:16
专家分:18
注 册:2016-9-3
得分:0 
回复 2楼 mywisdom88
在两台电脑上和一台电脑上的两个数据表都可以,SD06是SD表的第6列表,如果可以的话,还需要5分钟同步一次
就像两个表格中的,我只更新第一个表格的1,3,4,6的这几行,将SD06的数字变为0

[此贴子已经被作者于2016-9-9 08:27编辑过]

2016-09-09 08:12
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:10 
如果在不同主机上,要先做一个链接服务器,如果在同一数据服务器上,则不必。
其次,这个要做计划任务(不要做触发器,因为你这个案例,如果用触发器的话,可能会循环触发,不好控制!)
2016-09-09 08:45
黑夜轮回
Rank: 2
等 级:论坛游民
帖 子:16
专家分:18
注 册:2016-9-3
得分:0 
回复 4楼 厨师王德榜
update B set Asd06=Bsd06 where Asd06 like '0' and Asd01=Bsd01  那像我这样编辑可以吗,如果可以,我需要5分钟更新一次数据到表B,需要怎么编辑
2016-09-09 08:51
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
1、数据库在不同电脑上时,如电脑A和电脑B;
电脑A的SQL数据库情况
IP=192.168.1.10;
SD所在的数据库名称为:test

电脑B的SQL数据库情况
IP=192.168.1.100;
SD所在的数据库名称为:test

在电脑A的查询分析器上运行以下代码:
use test
go
update sd set sd06=b.sd06
FROM OpenDataSource('sqloledb','Data Source="192.168.1.100";User ID=sa;Password=123456;database=test').[test].[dbo].[sd]b
where sd.sd01=b.sd01 and b.sd06=0
2016-09-09 13:50
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
回复 6楼 mywisdom88
2、数据在同1台电脑上,不同版本的SQL,也是用
在电脑A的查询分析器上运行以下代码:
use test
 go
 update sd set sd06=b.sd06
 FROM OpenDataSource('sqloledb','Data Source="192.168.1.100";User ID=sa;Password=123456;database=test').[test].[dbo].[sd]b
 where sd.sd01=b.sd01 and b.sd06=0
3、数据库在同1台电脑上,相同的SQL版本。
sd表分别在 test 和 mytest上
use test
 go
 update sd set sd06=b.sd06
 FROM [mytest].[dbo].[sd]b
 where sd.sd01=b.sd01 and b.sd06=0

4、数据库在同1台电脑上,相同的SQL版本,同1个数据库中,不同的表名称
如:表名称为a_sd和b_sd 在数据库 test中
use test
 go
 update a_sd set sd06=b.sd06
 FROM b_sd b
 where a_sd.sd01=b.sd01 and b.sd06=0




[此贴子已经被作者于2016-9-9 14:08编辑过]

2016-09-09 13:56
mywisdom88
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
OpenDataSource('sqloledb','Data Source="192.168.1.100";User ID=sa;Password=123456;database=test').[test].[dbo].[sd]b
你要根据你自己的服务器,修改,Data Source="192.168.1.100",可以不要“”,也就是 Data Source=192.168.1.100,改你自己的IP或者域名,在局域网中的话可以是电脑名称
User ID=sa;Password=123456; 用来登录SQL服务器的用户名称和密码
database=test 你SD所在的数据库名称
2016-09-09 14:03
黑夜轮回
Rank: 2
等 级:论坛游民
帖 子:16
专家分:18
注 册:2016-9-3
得分:0 
回复 8楼 mywisdom88
怎么在同一台电脑的同一个SQL中建立两个相同的数据库啊
2016-09-10 09:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-468584-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.178083 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved