导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

触发器能控制不同地方的两个数据库?

cow8063 2007-12-26 05:42:48
我想实现数据同步功能,我只能操作上海的数据库

如数据库A北京IP:219.145.145.14,表AA有字段A1,A2,
数据库B上海IP:214.157.145.14,表BB有字段A1,A2,A3

我想当表AA有添加,删除,修改操作时,表BB同步更新,且A3值统一为1

这个触发器应该如何写呀 ?

...全文
145 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
-狙击手- 2007-12-27
创建链接服务器 只要创建一次就行了,配置好了就可以用:select * from linkerserver.dbname..tablename
回复
nicejane 2007-12-27
其实我也不知道写在那里.我就是在查询分析器里运行是可以通过的.
回复
cow8063 2007-12-27
nicejane

谢谢了,这些代码写在哪?触发器里面吗?
回复
nicejane 2007-12-27
直接拷贝过来的.有的未改正.
改为:

--创建链接服务器
exec sp_addlinkedserver 'ITSV','','SQLOLEDB','219.145.145.14'
exec sp_addlinkedsrvlogin 'ITSV','false',null,'用户名','密码'


--查询示例

--有的库权限不一定是 dbo
select * from ITSV.数据库名.dbo.AA


---导入AA表的数据


INSERT INTO BB( A1,A2 )
SELECT A1,A2
FROM ITSV.数据库名.dbo.AA
-- WHERE A3='1'
WHERE ITSV.数据库名.dbo.A3=1


回复
nicejane 2007-12-27

--创建链接服务器
exec sp_addlinkedserver 'ITSV','','SQLOLEDB','219.145.145.14'
exec sp_addlinkedsrvlogin 'ITSV','false',null,'用户名','密码'


--查询示例

--有的库权限不一定是 dbo
select * from ITSV.数据库名.dbo.AA


---导入AA表的数据

delete RepairBill

INSERT INTO RepairBill( A1,A2 )
SELECT A1,A2
FROM ITSV.数据库名.dbo.AA
-- WHERE A3='1'
WHERE ITSV.数据库名.dbo.A3=1


这是我所知道的解决方法.曾经和你的想法一样.但是没有权限在AA表中.
所以我用的是此方法.
可以再加上条件,过滤掉已经增加的数据.如最后一次操作时到AA表中主键的最大值(需要在存储此值)
回复
homel 2007-12-27
web service 不懂,关注一下
回复
cow8063 2007-12-27
web service怎么实现呢?能不能说说的
回复
winstonbonaparte 2007-12-26
你这样很容易出现脏数据等
回复
fcuandy 2007-12-26
利用sp_addlinkedserver或opendatasource之类的语句来处理远程数据库.

只不过不太好. 最好是用web service来实现.
回复
wzy_love_sly 2007-12-26
能不能都不应该这样做吧!
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告