是否可以在我的数据库服务器中创建另一个服务器数据库表的视图?
假设您在Testing
上有一个名为server1
的数据库,并且Testing2
上有另一个数据库server2
。是否可以在Testing2
的数据库Table2
中创建server1
的表Testing
的视图?
另外,我使用的是SQL Server 2008。
如果您有任何疑问,请与我们联系。
谢谢,
答案 0 :(得分:4)
是的,你可以。首先,您需要使用sp_addlinkedserver
等链接到其他服务器。
然后,您可以使用4部分命名来访问数据。这是一个例子:
create view v_server1_master_tables as
select *
from server1.master.information_schema.tables;
答案 1 :(得分:3)
可以通过链接服务器实现。但是,我不鼓励您根据来自其他服务器的表创建视图,因为每次使用此视图时,可能会从链接服务器中选择整个表 - 优化程序可能不知道此表结构以发出任何过滤器。
我已经在工作中看到它了,没有人知道大表上的select * from
查询来自哪个数据库的速度变慢了,而且似乎在一个简单的查询中它正在另一台服务器中使用。
至少你应该检查你的解决方案是否不会导致上述问题。也许其他人可以详细说明优化器在处理链接服务器时的行为?