サーバーを作成するために、sp_addlinkedserverをを使用する必要がありますリンク。使用方法については、reference documentationを参照してください。サーバーリンクが確立されると、データベース名の前に他のサーバーを置くだけで、通常のようにクエリを構築します。すなわち:リンクが確立されて
-- FROM DB1
SELECT *
FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2
ON tab1.ID = tab2.ID
たら、あなたはまた、リモートサーバー上のSQL文を実行するためにOPENQUERYを使用し、あなたに戻ってデータのみを転送することができます。これは少し速くすることができ、リモートサーバーがクエリを最適化できるようになります。上の例でDB1の一時(またはメモリ内の)テーブルにデータをキャッシュすると、標準テーブルに参加するようにクエリを実行できます。例:
-- Fetch data from the other database server
SELECT *
INTO #myTempTable
FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]')
-- Now I can join my temp table to see the data
SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN #myTempTable tab2 ON tab1.ID = tab2.ID
さらに詳しい例はOPENQUERYのドキュメントを参照してください。上記の例はかなり工夫されています。この具体的な例では最初のメソッドを使用しますが、OPENQUERYを使用する2番目のオプションでは、クエリを使用して一部のデータをフィルタリングすると時間とパフォーマンスを節約できます。
[SQL Serverで2つの異なるサーバーからのデータの選択]の可能複製(https://stackoverflow.com/questions/1144051/selecting-data-from-two-different-servers-in-sql-server ) –