如何把SQL SERVER2000的某几个表共享?(50分)

  • 主题发起人 主题发起人 zhangjensy
  • 开始时间 开始时间
Z

zhangjensy

Unregistered / Unconfirmed
GUEST, unregistred user!
现有三家公司,上了是同样的系统,有三个独立的数据库,现想把他们的基础资料(有10多个表)共享出来,即三个数据库共用基础资料(这样一来,基础资料只要输入一次,而不用输入3次),如何设置SQL SERVER2000?
 
本来就可以访问多个库啊
 
本来就可以访问多库
zqry1.sql.add('select * from adb2.dbo.temp1_table where 1=2 ')
呵呵
 
我的意思是有什么办法可通过设置数据库来达到三个数据库中基础资料这些表时时刻刻保持一致!即达到时时刻刻同步!这样就相当于把基础资料这些表的资料共享了!增加或修改任何一个数据库的基础资料表都即时增加或修改另两个数据库.
 
sql server支持复制、同步啊
 
同步不太好吧,同步失败会有什么效果呢?
 
同步失败会再次同步啊
 
能只同步其中的几个表?
是不是一定要同步整个数据库?
 
同步当然是可以定制的
 
看似乎简单,其实很复杂,一般只能做到数据同步(即只有一个主数据源),你有3个数据源, 要3个数据源上建立触发器, 还要有个分析同步程序
 
还是用触发器比较合适
 
看你同步到什么份上了,如果即时同步就用触发器吧,触发器访问表的话用adb2.dbo.temp1_table 不过可能会有异常,而且后期维护不方便.如果不需要即时同步,就写个服务吧.定时取数来插,这样稳定性高,后期维护也方便.
 
建立一个视图
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE VIEW dbo.VIEW1
AS
SELECT
a.id,a.name
FROM OPENROWSET('SQLOLEDB','127.0.0.1';'sa';'123456',
'SELECT * FROM abc.dbo.users ') AS a
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

插入数据:
insert into view1(id,name) values (1,'1')
 
后退
顶部