我在VPN上拥有13个SQL数据库,其他2005年是其他2008年。我想从"员工"中获取所有数据。每个数据库上的表,并使其成为每个位置的视图。然后,我想将这些视图发布到另一台服务器上的1个数据库,所有这些都在一个表中,标记每个数据库来自origninal数据库。例如,所有信息所在的数据库将如下所示:
User Name Location
bik Bob K 1
JS John S 2
等
感谢任何帮助。
答案 0 :(得分:0)
我假设您希望最终服务器上的数据可见但不可修改,并反映对源数据库所做的更改?
这可能不会做得那么好,但是一个自己动手的方法就是以下(免责声明:我自己没有尝试过这样做):
以此形式创建视图:
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 ....
如果您尚未阅读分布式查询,则可能需要阅读this documentation。
我相信也可以使用SSIS作为分布式查询的来源,但快速浏览文档并没有发现任何相关信息。我提到这一点,因为SSIS会非常容易地从disaparate数据源中提取和转换数据,如果你可以使用最终记录集作为数据源,你可以使用SSIS包作为视图的后端。然而,再次,性能可能需要相当多的调整。
答案 1 :(得分:0)
如果查询不必是实时的,您可以考虑使用SQL Server Integration Services(SSIS)将数据提取到本地数据库。你可以安排工作每小时/每天/每周运行..