代码之家  ›  专栏  ›  技术社区  ›  Kevin Ross

在数据库之间链接表

  •  0
  • Kevin Ross  · 技术社区  · 14 年前

    我在一个最好的方法,这是SQLServer2008r2Express的一点建议后。我在同一台服务器上的不同数据库中有许多应用程序。它们都是使用中心人员/结构列表的插件,这些列表将位于单独的数据库中。应用程序正在从JET迁移。

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

    因为我使用express排除了任何复制解决方案,到目前为止,我能想到的唯一选择是使用触发器或存储过程来推出对插件的所有更改。信息需要在足够的实时基础上填充,但是更改的数量非常少,可能每天最多100行,最大的表目前只有大约1000行(staff names表)。

    希望这将涵盖所有的一切,但如果有人需要任何更多的细节,然后问

    谢谢

    1 回复  |  直到 14 年前
        1
  •  2
  •   Ed Harper    14 年前

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

    假设是这样,您应该能够用直接引用中心表的视图或同义词替换“plugin”数据库中的中心数据库中的表的任何副本,因为SQL server允许您使用三部分命名(database\u name.schema\u name.object\u name)在同一服务器上的数据库之间进行引用

    例如,如果每个插件数据库都有一个表 StaffNames ,您可以将其替换为视图,方法是删除表,然后创建视图:

    drop table StaffNames
    go
    
    create view StaffNames
    as
    select * from <centraldbname>.<schema - probably dbo>.StaffNames
    go
    

    只要设置了权限,您的代码就应该继续无缝工作。

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