分布在两台电脑的两个数据库中的相同一张表,共享数据的问题(存储过程实现)单机已经实现,但是两台就行,高手指点
if exists (select name='proc_ss' from sysobjects where name='proc_ss' and type='P')
drop procedure proc_ss
go
create procedure proc_ss
as
set ansi_warnings on
update b
set BH_ZHU=a.BH_ZHU, BH=a.BH, SSMC=a.SSMC, SSJC=a.SSJC, LB=a.LB, BL=a.BL, BZ=a.BZ, LRR=a.LRR, LRSJ=a.LRSJ, BS=a.BS, BGRQ=a.BGRQ
from opendatasource ('sqloledb', 'data source = IP1(异地); user ID = sa; password = sa').ses.dbo.cqgl_ss a join
opendatasource ('sqloledb', 'data source = IP2(本机); user ID = sa; password = sa').sms.dbo.cqgl_ss b on a.BH_ZHU=b.BH_ZHU and a.BH=b.BH and a.SSJC=b.SSJC
insert into opendatasource ('sqloledb', 'data source = IP2(本机); user ID = sa; password = sa').sms.dbo.cqgl_ss ([BH_ZHU], [BH], [SSMC], [SSJC], [LB], [BL], [BZ], [LRR], [LRSJ], [BS], [BGRQ])
select [BH_ZHU], [BH], [SSMC], [SSJC], [LB], [BL], [BZ], [LRR], [LRSJ], [BS], [BGRQ]
from opendatasource ('sqloledb', 'data source = IP1(异地); user ID = sa; password = sa').es.dbo.cqgl_ss a
where not exists(select 1 from es.dbo.cqgl_ss where a.BH_ZHU=BH_ZHU and a.BH=BH and a.SSJC=SSJC)
go
--==========================
exec proc_ss
执行存储过程时,提示对象名b无效。
单机的时候没有这个问题,是不是不同IP的情况下不能使用别名?要怎么解决呢?
请指点初学者。
顺祝2008年身体健康,工作顺利