我真的不是一个数据库人,所以请原谅我这个问题。
我正在使用Visual Studio 2008,我正在尝试查看另一个服务器数据库上的表。
示例:
我有我的aspnetdb.mdf数据库和我的anaylsis.mdf数据库。
我在Visual Studio中尝试做的是读取来自anaylsis.mdf的aspnetdb.mdf内的表列。
这是怎么做到的?
由于
答案 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)。
答案 2 :(得分:0)
一种有用的方法是使用VIEWS,您可以使用其他数据库中的DATAS创建视图,并将其用作数据库中的一种表格。
答案 3 :(得分:0)
您可以在运行sp的同一服务器上设置linked server,这将为其提供别名,即
。select *
from Server2.Database2.dbo.SomeTable
或者您可以使用OpenRowset命令。我总是尝试使用链接服务器选项,但如果您没有服务器管理员访问权限,OpenRowset很有用。
两者显然都依赖于能够正常通信的服务器。