假设,我有一个testdb
在测试服务器中命名的数据库.此外,我在prod服务器中有一个名为proddb的数据库.
现在我想从proddb数据库中选择testdb数据库表的数据.
我怎么能这样做SQL Server
?
另外,我可以用做数据库链接的预言.但是如何在SQL Server中做到这一点?
你需要sp_addlinkedserver()
http://msdn.microsoft.com/en-us/library/ms190479.aspx
例:
exec sp_addlinkedserver @server = 'test'
然后
select * from [server].[database].[schema].[table]
在你的例子中:
select * from [test].[testdb].[dbo].[table]
在SQL Server 2012及更高版本中,您无需创建链接.你可以直接执行
SELECT * FROM [TARGET_DATABASE].dbo.[TABLE] AS _TARGET
我不知道以前版本的SQL Server是否也能正常工作
我之前使用过这个来通过链接服务器设置对另一个服务器和数据库的查询:
EXEC sp_addlinkedserver @server='PWA_ProjectServer', @srvproduct='', @provider='SQLOLEDB', @datasrc='SERVERNAME\PWA_ProjectServer'
根据以上评论:
select * from [server].[database].[schema].[table]
例如
select top 6 * from [PWA_ProjectServer].[PWA_ProjectServer_Reporting].[dbo].[MSP_AdminStatus]
要执行跨服务器查询,请检查系统存储过程:帮助文件中的sp_addlinkedserver.
连接服务器后,您可以针对它运行查询.