我可以从其他数据库服务器在数据库服务器中创建视图

时间:2013-03-22 15:14:53

标签: sql sql-server-2008 view connection

是否可以在我的数据库服务器中创建另一个服务器数据库表的视图?

假设您在Testing上有一个名为server1的数据库,并且Testing2上有另一个数据库server2。是否可以在Testing2的数据库Table2中创建server1的表Testing的视图?

另外,我使用的是SQL Server 2008。

如果您有任何疑问,请与我们联系。

谢谢,

2 个答案:

答案 0 :(得分:4)

是的,你可以。首先,您需要使用sp_addlinkedserver等链接到其他服务器。

然后,您可以使用4部分命名来访问数据。这是一个例子:

create view v_server1_master_tables as
    select *
    from server1.master.information_schema.tables;

答案 1 :(得分:3)

可以通过链接服务器实现。但是,我不鼓励您根据来自其他服务器的表创建视图,因为每次使用此视图时,可能会从链接服务器中选择整个表 - 优化程序可能不知道此表结构以发出任何过滤器。 我已经在工作中看到它了,没有人知道大表上的select * from查询来自哪个数据库的速度变慢了,而且似乎在一个简单的查询中它正在另一台服务器中使用。 至少你应该检查你的解决方案是否不会导致上述问题。也许其他人可以详细说明优化器在处理链接服务器时的行为?