テストサーバーにtestdb
という名前のデータベースがあるとします。また、proddb in prod serverという名前のデータベースがあります。
ここで、prodbデータベースからtestdbデータベースのテーブルのデータを選択します。
SQL Server
でどうすればいいですか?
また、database link in Oracleを使用してそれを行うことができます。しかし、どうすれば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も同様に機能するかどうかわかりません
リンクサーバー経由で別のサーバーと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]
クロスサーバークエリを実行するには、システムストアドプロシージャsp_addlinkedserverをヘルプファイルで確認します。
サーバーがリンクされると、それに対してクエリを実行できます。