两个数据库中一个报表的同步问题

guoxingang 2006-05-10 01:56:23
在同一台机器上安装了SQL SERVER 里面有两个数据库a,b,他们的数据库结构一样,所有的报表和视图也一样,我想是a数据库的c表与b数据库的c表保持同步,请问改如何实现。谢谢
...全文
145 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
splory 2006-05-12
  • 打赏
  • 举报
回复
现在还只了解到有个数据库的复制来订阅,单个的表的同步就用不着动用这么大的工程了
这个用个级联更新就成了,你用个触发器使这两个表保持一样的更删改就成
下面有个相关的例子,你在更具你的实际情况转变吧

级联更新相关数据字段
在外键定义的时候加 ON UPDATE CASCADE

指定如果试图更新某行中的键值,而该行的键值由其它表的现有行中的外键所引用,则所有外键值也将更新成为该键指定的新值。如果在目标表上也定义了级联引用操作,则对在那些表中更新的键值同样采取指定的级联操作。

例:

create table dep( --部门表
id int not null CONSTRAINT PK_dep_id PRIMARY KEY NONCLUSTERED,
name varchar(50)
)
go

create table employee( --员工表
id int not null CONSTRAINT PK_emp_id PRIMARY KEY NONCLUSTERED,
name varchar(50),
depid int not null,
CONSTRAINT FK_employee_dep FOREIGN KEY (depid)
REFERENCES dep (id) ON UPDATE CASCADE
)
go

insert dep select 2,'销售部'
union all select 3,'人事部'
go

insert employee select 1,'张三',2
union all select 2,'李四',3

go

update employee set depid=1 where id=3

级联删除相关数据记录

在外键定义的时候加 ON DELETE CASCADE

指定如果试图删除某行,而该行含有由其它表的现有行中的外键所引用的键,则也将删除所有包含那些外键的行。如果在目标表上也定义了级联引用操作,则对从那些表中删除的行同样采取指定的级联操作。

guoxingang 2006-05-11
  • 打赏
  • 举报
回复
A,B数据库中除了C表的内容是一样的以外,其他的视图和表的内容都不一样,能否把A的C表建立一个发布,用B去订阅。那这样会不会改变B数据库的其他表和视图的内容呢?
guoxingang 2006-05-11
  • 打赏
  • 举报
回复
splory能否介绍的详细一些
gahade 2006-05-10
  • 打赏
  • 举报
回复
在a..c上或b..以上建立insert,update,delete触发器同步数据
splory 2006-05-10
  • 打赏
  • 举报
回复
使用一个视图
让它使这两个表保持一样的增删改就成

34,593

社区成员

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

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