2台MSSQL服务器某数据库怎么同步?

2台MSSQL服务器某数据库怎么同步?,第1张

如果在一个服务器上,可以用语句实现。

insert

into

database1dbotable1(a1,a2)

select

b1,b2

from

database2dbotable2

若在不同服务器上,可以用数据库的导出功能。

两个不同数据库同一张表,是表名相同?
只要你要更新的表加上数据库名,下面是例子,你自己在触发器里仿照一下
UPDATE Northwinddboemployees SET lastName = '' WHERE lastName = ''

CREATE TRIGGER trigger_cgjh_insert
ON [dbo][cg_cgjh_bt]
FOR INSERT AS
BEGIN
insert into openrowset('sqloledb','1921680100';'sa';'10060','select from knss2009dboyw_kck') select from yw_kck
END
给你写过例子可以实现跨服务器跨库的语句吧,你那种方法没用过
你在查询分析器里边 运行一下提示你的就行了

你可以分三个来写,分别用来监视insert\delete\update三个(这样写容易完成),我下面写一个,你其它有可以参照下面这个来写
--插入行的情况
CREATE TRIGGER [填入触发器名] ON [dbo][表名]
FOR INSERT
AS
insert [另外一个数据库名][dbo][表名] select from inserted
你也可以参照料我下面这段,写在一起,但比较麻烦,我就不具体按你要求的写了罗
CREATE trigger [数据库Atr_user] on [user]
/ 触发器 在数据库A的user表建立一个名字tr_user的触发器 /
for update,insert,delete
/监视 修改 插入 删除/
as
if not exists (select from deleted)
/ 如果deleted表为空,那么 /
insert 数据库B[user](username,userpass,landtime) select username,password,lastlogin from inserted
/ 将inserted表(就是对于触发器来说刚刚被插入的集合)插入到Buser /
else if not exists (select from inserted)--删除
/ 否则 如果 inserted集合为空 /
delete 数据库B[user] where id in (select userid from deleted)
/ 那么删除Buser下id是deleted集合中出现的id 这里用了in /
else--更新
update [user]
set
[user]username=iusername,
[user]userpass=ipassword
from 数据库B[user] as [user],
inserted as i
where [user]id=iuserid
/ update就很明显了,凡是updated的都来更新,保持一样就可以了 /
alter table 数据库B[user] ENABLE TRIGGER [数据库Btr_user]

有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。
1在Oracle中建立对应的contract 和 contract_project表,需要同步哪些字段我们就建那些字段到Oracle表中。
这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行:
SELECT
FROM msdbdboMSdatatype_mappings
SELECT
FROM msdbdbosysdatatypemappings
来查看SQLServer和其他数据库系统的数据类型对应关系。第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。
SQLServer和Oracle的对应
2建立链接服务器。我们将Oracle系统作为SQLServer的链接服务器加入到SQLServer中。
具体做法参见我以前的文章>

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/12913737.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-28
下一篇2025-08-28

发表评论

登录后才能评论

评论列表(0条)

    保存