2017-08-21 3 views
0

私はSQL Serverが新しくなっています。私は質問がある:私は3つのSQLサーバー、2ドメインDomain1と1 Domain2にしている。SQL Server:SELECTクエリを実行しているダブルホップのリンクサーバー

  • SQL Serverの1 & 2はドメイン1に
  • SQL Server_3はドメイン2にあります。
  • SQL SERVER_1 - 3

SQL server_2のにリンクされているとSQL Server 2は、SQL Serverにリンクされている私のWindows認証では、すべての3台のサーバ上のすべてのWindowsサーバーとSQLサーバー上で管理者です。私はSQLServer_1にこれらのクエリを実行しようとしました(SQLServer_1SQLServer_3間を直接接続することは、残念ながらオプションの外にある)中央のジャンプポイントとしてSQLServer_2を使用してSQLServer_3からデータを取得するためにSQLServer_1SELECTクエリを実行するために

をしようとしています:

The object name 'SQLServer_2.SQLServer_3.DBName_1.Table_Name1' contains more than the maximum number of prefixes. The maximum is 3.

SELECT * 
FROM [SQLServer_3].[DBName_1].[Table_Name1] 

SELECT * 
FROM [SQLServer_2].[SQLServer_3].[DBName_1].[Table_Name1] 

は、しかし、私はこのエラーを取得します中の

結果:

Could not find server 'SQLServer_3' in sys.servers. Verify that the correct server name was specified. If necessary, execute the stored procedure sp_addlinkedserver to add the server to sys.servers.

だから、両方が動作しませんでした。

お願いします。それも可能ですか?

+0

おそらく、2番目のサーバーでOPENQUERYを使用して、3番目のサーバーでクエリを実行しますか?例えば(server2、 'select * from server3.database.schema.table;'); 'または、server1(server3に接続する)上のストアドプロシージャをserver1から実行することを検討することもできます。 – ZLK

+0

ありがとうございました!!!!それは働いた:)))whooohoooo –

答えて

0

Thank you ZLK 23. He's suggestion worked. I dont know how to post it as an answer if any one does please help me out.

おそらく第三のクエリを実行するために、第2のサーバ上でOPENQUERYを使うのか?例えばサーバー1で選択* openquery(server2、 'select * from server3.database.schema.table;');または、server1からserver2(server3に接続する)上のストアド・プロシージャを実行することもできます。 - 23時間前ZLK

I ran this query from SQLServer_1. In my understanding it runs query SELECT on SQLServer_2 the SELECT QUERY in the second parameter and retrieves the results back. Which has worked perfect for me.

SELECT * FROM OPENQUERY(SQLSERVER_2,'SELECT * FROM 'SQLSERVER_3.DBNAME.TABLENAME') 

ありがとうございました。

関連する問題