例えば、testサーバにtestdb
という名前のデータベースがあるとします。
また、prodサーバーにproddbという名前のデータベースがあります。
ここで、proddbデータベースからtestdbデータベースのテーブルのデータを選択したいとします。
SQL Server``ではどのようにすればよいのでしょうか?
また、oracleのdatabase linkを使用してそれを行うことができます。しかし、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]
以前、リンクされたサーバーを経由して別のサーバーと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を参照してください。
サーバーがリンクされると、そのサーバーに対してクエリを実行することができます。