跨庫查詢sql
工具/材料:Management Studio。
1、首先在桌面上,點擊「Management Studio」圖標。
2. SQLServer的跨庫查詢的實現方法
本文給出了一個SQL語句,用於在同一伺服器上顯示不同資料庫之間的查詢。注意,當前連接用戶擁有對所有兩個庫的許可權。
SQLServer中sql語句中對象的完整表達式為:
{伺服器}。{語句},{ DatabaseSchema },{ DatabaseObject }
在本文中,使用SQL語句顯示同一伺服器上不同資料庫之間的查詢。值得注意的是,當前連接用戶可以訪問兩個庫。
復制代碼代碼如下所示:
選擇*
從cfteadb1.dbo.cfteatable1內加入cfteadb2.dbo.cfteatable2
在cfteadb1。dbo。cfteatable1 ID = cfteadb2.dbo.cfteatable2.id。
以上已在SQL Server 2008 R2的管理庫中成功地進行了測試。
以下是一些補充信息
未使用鏈接的伺服器名稱,並且作為對象名稱的四部分的一部分提供了特殊的連接信息。
語法
OPENDATASOURCE(provider_name,init_string)
參數
provider_name
的ProgID,注冊為OLE DB提供程序用於訪問數據源的名稱,provider_name數據類型char和沒有默認值。
init_string
連接字元串,它將被傳遞給目標供應商IDataIntialize介面。提供程序字元串的語法是基於關鍵字-值對,其中由分號分隔的,如中=價值;關鍵詞=價值。
基本語法的定義是在微軟(R)的數據訪問,在特定的關鍵字值對所支持的信息,在供應商看到文件。下表列出了在init_string參數最常用的關鍵詞。
關鍵詞
OLE DB屬性
有效值和描述
數據源
dbprop_init_datasource
數據源的名稱有聯系的。不同的供應商不同的方式解釋它,SQL Server OLE DB提供者,這將指定伺服器的名稱。對射流的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可以作為四部分的名字的第一部分,指的是在選擇,插入的表或視圖的名稱,更新或刪除語句,或是指遠程存儲過程在執行語句。當遠程存儲過程執行時,指的是另一個SQL server.opendatasource OPENDATASOURCE應該不接受參數變數。
類似於OPENROWSET函數OPENDATASOURCE應該僅指OLE DB數據源不經常訪問的數據源。任何有一點接入,定義鏈接伺服器。既不可如openrowset OPENDATASOURCE提供的伺服器,連接定義的所有功能,安全管理和查詢目錄信息的能力。每次調用OPENDATASOURCE時,所有的連接信息(包括密碼)必須提供。
樣品
下面的示例訪問SQLServer另一個實例中的表中的數據。
復制代碼代碼如下所示:
*選擇
從OPENDATASOURCE(
SQLOLEDB。
數據源= %ServerName;用戶ID = myuid;密碼= mypass
Northwind. dbo.類別)
下面是一個查詢,通過OLE DB提供程序查詢Excel電子表格的查詢示例。
復制代碼代碼如下所示:
*選擇
從OPENDATASOURCE('microsoft。飛機。OLEDB。4。
數據源=C:財務帳戶。XLS;用戶ID =管理員;密碼=;擴展屬性= Excel 5)…xactions