如何将表查询到视图并发布到其他数据库

时间:2014-01-15 14:46:09

标签: sql sql-server sql-server-2008 sql-server-2005

我在VPN上拥有13个SQL数据库,其他2005年是其他2008年。我想从"员工"中获取所有数据。每个数据库上的表,并使其成为每个位置的视图。然后,我想将这些视图发布到另一台服务器上的1个数据库,所有这些都在一个表中,标记每个数据库来自origninal数据库。例如,所有信息所在的数据库将如下所示:

User          Name       Location
bik          Bob K          1
JS           John S         2

感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我假设您希望最终服务器上的数据可见但不可修改,并反映对源数据库所做的更改?

这可能不会做得那么好,但是一个自己动手的方法就是以下(免责声明:我自己没有尝试过这样做):

  1. 在最终服务器上将所有源服务器设置为链接服务器。
  2. 以此形式创建视图:

    SELECT  *, 1 as Location
    FROM    [Linked Server 1].Database1.dbo.Table1
    UNION ALL
    SELECT  *, 2 as Location
    FROM    [Linked Server 2].Database2.dbo.Table2
    ... etc ....
    
  3. 如果您尚未阅读分布式查询,则可能需要阅读this documentation

    我相信也可以使用SSIS作为分布式查询的来源,但快速浏览文档并没有发现任何相关信息。我提到这一点,因为SSIS会非常容易地从disaparate数据源中提取和转换数据,如果你可以使用最终记录集作为数据源,你可以使用SSIS包作为视图的后端。然而,再次,性能可能需要相当多的调整。

答案 1 :(得分:0)

如果查询不必是实时的,您可以考虑使用SQL Server Integration Services(SSIS)将数据提取到本地数据库。你可以安排工作每小时/每天/每周运行..