注册 登录
编程论坛 SQL Server论坛

两数据库同步更新求编程解答

黑夜轮回 发布于 2016-09-07 18:12, 2912 次点击
我有两个数据库的主机,A,B的SD06=1,当A的SD06=0,B的SD06=1时,将B的SD06更新为0;
反之,当B的SD06=0,A的SD06=1时,将A的SD06更新为0。
8 回复
#2
mywisdom882016-09-08 17:57
以下是引用黑夜轮回在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是某个表的字段名称?
#3
黑夜轮回2016-09-09 08:12
回复 2楼 mywisdom88
在两台电脑上和一台电脑上的两个数据表都可以,SD06是SD表的第6列表,如果可以的话,还需要5分钟同步一次
只有本站会员才能查看附件,请 登录
就像两个表格中的,我只更新第一个表格的1,3,4,6的这几行,将SD06的数字变为0

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

#4
厨师王德榜2016-09-09 08:45
如果在不同主机上,要先做一个链接服务器,如果在同一数据服务器上,则不必。
其次,这个要做计划任务(不要做触发器,因为你这个案例,如果用触发器的话,可能会循环触发,不好控制!)
#5
黑夜轮回2016-09-09 08:51
回复 4楼 厨师王德榜
update B set Asd06=Bsd06 where Asd06 like '0' and Asd01=Bsd01  那像我这样编辑可以吗,如果可以,我需要5分钟更新一次数据到表B,需要怎么编辑
#6
mywisdom882016-09-09 13:50
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
#7
mywisdom882016-09-09 13:56
回复 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编辑过]

#8
mywisdom882016-09-09 14:03
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所在的数据库名称
#9
黑夜轮回2016-09-10 09:32
回复 8楼 mywisdom88
怎么在同一台电脑的同一个SQL中建立两个相同的数据库啊
1