程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> SQLServer 跨庫查詢實現方法

SQLServer 跨庫查詢實現方法

編輯:更多數據庫知識

本文給出一條 SQL 語句用於展示在同一名服務器上,不同的數據庫間查詢,注意當前連接用戶要對兩個庫都有權限
SQL Server 中 SQL 語句中對象的完整表達式是:

[DatabaseServer].[DatabaseName].[DatabaseSchema].[DatabaseObject]

本文給出一條 SQL 語句用於展示在同一名服務器上,不同的數據庫間查詢,注意當前連接用戶要對兩個庫都有權限。
復制代碼 代碼如下:
select *
from CfteaDb1.dbo.CfteaTable1 inner join CfteaDb2.dbo.CfteaTable2
on CfteaDb1.dbo.CfteaTable1.Id=CfteaDb2.dbo.CfteaTable2.Id

以上在 SQL Server 2008 R2 的 Management Studio 中測試成功。

下面是一些補充資料

不使用鏈接的服務器名,而提供特殊的連接信息,並將其作為四部分對象名的一部分。

語法
OPENDATASOURCE ( provider_name, init_string )

參數
provider_name

注冊為用於訪問數據源的 OLE DB 提供程序的 PROGID 的名稱。provider_name 的數據類型為 char,沒有默認值。

init_string

連接字符串,這些字符串將要傳遞給目標提供程序的 IDataInitialize 接口。提供程序字符串語法是以關鍵字值對為基礎的,這些關鍵字值對由分號隔開,例如:"keyword1=value; keyword2=value."

在 Microsoft® Data Access SDK 中定義了基本語法。有關所支持的特定關鍵字值對的信息,請參見提供程序中的文檔。下表列出 init_string 參數中最常用的關鍵字。
關鍵字 OLE DB 屬性 有效值和描述 數據源 DBPROP_INIT_DATASOURCE 要連接的數據源的名稱。不同的提供程序用不同的方法對此進行解釋。對於 SQL Server OLE DB 提供程序來說,這會指明服務器的名稱。對於 Jet OLE DB 提供程序來說,這會指明 .mdb 文件或 .xls 文件的完整路徑。 位置 DBPROP_INIT_LOCATION 要連接的數據庫的位置。 擴展屬性 DBPROP_INIT_PROVIDERSTRING 提供程序特定的連接字符串。 連接超時 DBPROP_INIT_TIMEOUT 超時值,在該超時值後,連接嘗試將失敗。 用戶 ID DBPROP_AUTH_USERID 用於該連接的用戶 ID。 密碼 DBPROP_AUTH_PASSWORD 用於該連接的密碼。 目錄 DBPROP_INIT_CATALOG 連接到數據源時的初始或默認的目錄名稱。
注釋
OPENDATASOURCE 函數可以在能夠使用鏈接服務器名的相同 Transact-SQL 語法位置中使用。因此,就可以將 OPENDATASOURCE 用作四部分名稱的第一部分,該名稱指的是 SELECT、INSERT、UPDATE 或 DELETE 語句中的表或視圖的名稱;或者指的是 EXECUTE 語句中的遠程存儲過程。當執行遠程存儲過程時,OPENDATASOURCE 應該指的是另一個 SQL Server。OPENDATASOURCE 不接受參數變量。

與 OPENROWSET 函數類似,OPENDATASOURCE 應該只引用那些不經常訪問的 OLE DB 數據源。對於訪問次數稍多的任何數據源,請為它們定義鏈接的服務器。無論 OPENDATASOURCE 還是 OPENROWSET 都不能提供鏈接的服務器定義的全部功能,例如,安全管理以及查詢目錄信息的能力。每次調用 OPENDATASOURCE 時,都必須提供所有的連接信息(包括密碼)。

示例
下面的示例訪問來自某個表的數據,該表在 SQL Server 的另一個實例中。
復制代碼 代碼如下:
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerName;User ID=MyUID;Password=MyPass'
).Northwind.dbo.Categories

下面是個查詢的示例,它通過用於 Jet 的 OLE DB 提供程序查詢 Excel 電子表格。
復制代碼 代碼如下:
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved