use*_*431 46 sql database sql-server linked-server
假设,我有一个testdb在测试服务器中命名的数据库.此外,我在prod服务器中有一个名为proddb的数据库.
现在我想从proddb数据库中选择testdb数据库表的数据.
我怎么能这样做SQL Server?
另外,我可以用做数据库链接的预言.但是如何在SQL Server中做到这一点?
Mat*_*ell 57
你需要sp_addlinkedserver()
http://msdn.microsoft.com/en-us/library/ms190479.aspx
例:
exec sp_addlinkedserver @server = 'test'
Run Code Online (Sandbox Code Playgroud)
然后
select * from [server].[database].[schema].[table]
Run Code Online (Sandbox Code Playgroud)
在你的例子中:
select * from [test].[testdb].[dbo].[table]
Run Code Online (Sandbox Code Playgroud)
Art*_*ald 24
在SQL Server 2012及更高版本中,您无需创建链接.你可以直接执行
SELECT * FROM [TARGET_DATABASE].dbo.[TABLE] AS _TARGET
Run Code Online (Sandbox Code Playgroud)
我不知道以前版本的SQL Server是否也能正常工作
Bri*_*lls 11
我之前使用过这个来通过链接服务器设置对另一个服务器和数据库的查询:
EXEC sp_addlinkedserver @server='PWA_ProjectServer', @srvproduct='',
@provider='SQLOLEDB', @datasrc='SERVERNAME\PWA_ProjectServer'
Run Code Online (Sandbox Code Playgroud)
根据以上评论:
select * from [server].[database].[schema].[table]
Run Code Online (Sandbox Code Playgroud)
例如
select top 6 * from [PWA_ProjectServer].[PWA_ProjectServer_Reporting].[dbo].[MSP_AdminStatus]
Run Code Online (Sandbox Code Playgroud)
使用 Microsoft SQL Server Management Studio,您可以创建Linked Server. 首先连接到当前(本地)服务器,然后转到Server Objects>>Linked Servers上下文菜单 > New Linked Server。在窗口中,New Linked Server您必须指定远程服务器所需的服务器名称、真实服务器名称或 IP 地址(数据源)和凭据(安全页面)。
此外,您还可以从链接服务器中选择数据:
select * from [linked_server_name].[database].[schema].[table]
Run Code Online (Sandbox Code Playgroud)