跨資料庫伺服器連線表查詢資料
在許多情況下,您可能需要連接位於不同伺服器上的不同資料庫中的表。這可能是一個挑戰,但有一些方法可以促進這種數據整合。
方法一:建立伺服器連結
sp_addlinkedserver
預存程序可讓您在本機伺服器和遠端資料庫伺服器之間建立連接,稱為伺服器連結。建立連結後,您可以透過在遠端伺服器名稱前新增其資料庫名稱來引用查詢中的遠端表。
例如,如果您在 MyDatabaseOnDB1
中有表格 MyTable
,在 MyDatabaseOnDB2
中有表格 MyOtherTable
,您可以使用以下查詢連接它們:
<code class="language-sql">SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1 INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2 ON tab1.ID = tab2.ID</code>
方法二:使用 OPENQUERY
或者,您可以使用 OPENQUERY
在遠端伺服器上執行 SQL 查詢並檢索結果。此方法允許遠端伺服器最佳化查詢,並可以提高效能。為此,您可以建立本機伺服器上的臨時表,並使用 OPENQUERY
將其填入在遠端伺服器上執行的查詢結果。
例如:
<code class="language-sql">-- 从其他数据库服务器获取数据 SELECT * INTO #myTempTable FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]') -- 现在我可以连接我的临时表来查看数据 SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1 INNER JOIN #myTempTable tab2 ON tab1.ID = tab2.ID</code>
OPENQUERY
的使用可以提高效能並節省時間,尤其是在使用查詢過濾大型資料集的情況下。
您是使用伺服器連結還是 OPENQUERY
取決於您的應用程式的特定要求和效能考量。這兩種方法都為跨資料庫伺服器查詢資料並促進有效的資料整合提供了可行的解決方案。
以上是如何連接不同資料庫伺服器上的表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!