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

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

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

...全文
182 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
能不能都不应该这样做吧!

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧