在数据库之间链接表

时间:2010-07-15 07:21:45

标签: sql-server

我对SQL Server 2008R2 express的最佳解决方法提出了一些建议。我有许多应用程序位于同一服务器上的不同数据库中。它们都是使用中央人员/结构列表的“插件”,这些列表将位于单独的数据库中。该应用程序正在从JET迁移。

我正在寻找的是所有“插件”数据库能够查看中央数据库并在标准查询和视图等中使用这些表的最佳方式。

由于我正在使用express来排除任何复制解决方案,到目前为止,我能想到的唯一选择是使用触发器或存储过程来“推出”插件的所有更改。信息需要在足够实时的基础上填充,但是变化的数量非常小,可能每天最多100个,而最大的表目前只有大约1000行(员工姓名表)。

希望这将涵盖所有的一切,但如果有人需要更多细节,那么请问

由于

1 个答案:

答案 0 :(得分:2)

如果我误解了道歉,但是根据你的描述,听起来所有这些数据库都托管在同一个SQL Server实例上 - 你提到的复制让我不确定。

假设是这种情况,您应该能够从“插件”数据库中保存的中央数据库替换任何表的副本,其中包含直接引用中央表的视图或同义词,因为SQL Server允许您进行引用使用三部分命名(database_name.schema_name.object_name)

在同一服务器上的数据库之间

例如,如果每个插件db都有一个表StaffNames,您可以通过删除表,然后创建视图来将其替换为视图:

drop table StaffNames
go

create view StaffNames
as
select * from <centraldbname>.<schema - probably dbo>.StaffNames
go
只要设置了权限,

就可以继续无缝地运行代码。

或者,您可以使用对中央数据库的三部分名称引用替换插件数据库中对共享表的所有引用,但是view方法需要较少的工作。