web-dev-qa-db-ja.com

SQL Serverの別のデータベースからテーブルのデータを選択する方法は?

テストサーバーtestdbという名前のデータベースがあるとします。また、proddb in prod serverという名前のデータベースがあります。

ここで、prodbデータベースからtestdbデータベースのテーブルのデータを選択します。

SQL Serverでどうすればいいですか?

また、database link in Oracleを使用してそれを行うことができます。しかし、どうすればSQL Serverでできるのでしょうか?

46
user82431

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]
57
Matthew Farwell

SQL Server 2012以降では、リンクを作成する必要はありません。直接実行できます

SELECT * FROM [TARGET_DATABASE].dbo.[TABLE] AS _TARGET

以前のバージョンのSQL Serverも同様に機能するかどうかわかりません

23
Arthur Ronald

リンクサーバー経由で別のサーバーとdbに対してクエリをセットアップするために、これを使用したことがあります。

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]
11
Brian Wells

クロスサーバークエリを実行するには、システムストアドプロシージャsp_addlinkedserverをヘルプファイルで確認します。

サーバーがリンクされると、それに対してクエリを実行できます。

5
Mitch Baker