从另一个ms sqlserver查询表

时间:2011-02-17 13:34:22

标签: asp.net sql-server

我真的不是一个数据库人,所以请原谅我这个问题。

我正在使用Visual Studio 2008,我正在尝试查看另一个服务器数据库上的表。

示例:

我有我的aspnetdb.mdf数据库和我的anaylsis.mdf数据库。

我在Visual Studio中尝试做的是读取来自anaylsis.mdf的aspnetdb.mdf内的表列。

这是怎么做到的?

由于

4 个答案:

答案 0 :(得分:2)

为了能够访问其他服务器中的任何对象,您需要创建一个到该服务器的链接服务器,如下所示:

你的aspnetdb中的

转到服务器对象 - >链接服务器 - >右键单击 - >新的链接服务器。 将打开一个窗口,您必须填写常规选项卡中的信息,如下所示: 链接服务器:anaylsisDB 服务器类型:其他数据源 提供者:SQL Native Client ProductName:SQL 数据源:anaylsis(这是您要连接的服务器名称)

完成此选项卡后,在页面左侧转到“保密”选项卡并填写如下信息: 在页面底部选择使用此安全性内容并插入anaylsis服务器用户名和密码。

单击确定,现在您已经为anaylsis创建了一个链接服务器。所以你可以用这种格式使用anaylsis中的任何对象:

anaylsisDB。[DATABASENAME] .dbo。[表名] 要么 anaylsisDB。[DATABASENAME] .dbo。[VIEWNAME] 这里anaylsisDB是我们对anaylsis服务器所做的链接服务器的名称。

答案 1 :(得分:1)

SELECT * FROM [linkedServer].[database].[dbo].[someTable]

您可以在MSDN上的T-SQL文档中找到一些有用的信息:

  

如果表或视图存在于SQL Serverl实例之外,请使用linked_server.catalog.schema.object形式的四部分名称。有关更多信息,请参见sp_addlinkedserver(Transact-SQL)。

来源: http://msdn.microsoft.com/en-us/library/ms177634(v=SQL.100).aspx#c089161a-53bf-46d4-a2da-51252dd10e3f_c

答案 2 :(得分:0)

一种有用的方法是使用VIEWS,您可以使用其他数据库中的DATAS创建视图,并将其用作数据库中的一种表格。

MSDN

答案 3 :(得分:0)

您可以在运行sp的同一服务器上设置linked server,这将为其提供别名,即

select * 
from Server2.Database2.dbo.SomeTable

或者您可以使用OpenRowset命令。我总是尝试使用链接服务器选项,但如果您没有服务器管理员访问权限,OpenRowset很有用。

两者显然都依赖于能够正常通信的服务器。