本文對SQL Server跨伺服器串連的方式進行總結。
1、OPENDATASOURCE
在SQL文中直接用此語句開啟資料庫樣本:
OPENDATASOURCE('SQLOLEDB','Data Source=TQDBSV001;User ID=fish;Password=2312').RackDB.dbo.CS |
此方式較為簡單,但存在弊端就是速度很慢。
2、OPENROWSET
包括從 OLE DB 資料來源存取遠端資料需要的所有連線資訊。這個方法是在連結伺服器存取資料表的替代方法,而且是使用 OLE DB 連線與存取遠端資料的一次、特定的方法。OPENROWSET 函數可以在查詢的 FROM 子句中當作資料表名稱來參考。根據 OLE DB Provider 的能力,OPENROWSET 函數也可以當作 Insert、Update 或 Delete 陳述式的目標資料表來參考。雖然查詢可能會傳回多個結果集,OPENROWSET 只傳回第一個結果集。文法:
OPENROWSET ( 'provider_name' , { 'datasource' ; 'user_id' ; 'password' | 'provider_string' } , { [ catalog.] [ schema.] object | 'query' } ) |
參數:
'provider_name':代表登入中指定的 OLE DB Provider 的親和名稱之字元字串。
'provider_name' 沒有預設值。
'datasource':是對應到特殊 OLE DB 資料來源的字串常數。
'datasource' 是要傳送到提供者 IDBProperties 介面以初始化提供者的 DBPROP_INIT_DATASOURCE 屬性。一般而言,此字串包括資料庫設定檔名稱、資料庫伺服器名稱或提供者瞭解並用以尋找資料庫的名稱。
'user_id':是要傳送到指定的 OLE DB Provider 的使用者名稱字串常數。user_id 指定連線的安全性內容且以 DBPROP_AUTH_USERID 屬性傳送以初始化提供者。
'password':是要傳送到 OLE DB Provider 的使用者密碼字串常數。初始化提供者時,password 以 DBPROP_AUTH_PASSWORD 屬性傳送。
'provider_string':是以 DBPROP_INIT_PROVIDERSTRING 屬性傳送以初始化 OLE DB Provider 的特定提供者連線字串。provider_string 一般會包含所有初始化提供者時需要的所有連線資訊。
catalog:是有指定物件的資料庫目錄或資料庫名稱。
schema:是指定物件的結構描述或物件擁有者名稱。
object:唯一指定要操作的物件之物件名稱。
'query':傳送到提供者並由提供者執行的字串常數。MicrosoftR SQL Server? 不處理此查詢,但處理由提供者傳回的查詢結果 (傳遞查詢)。傳遞查詢用在不經由資料表名稱而只經由命令語言顯露其表格資料的提供者時,非常有用。只要查詢提供者支援 OLE DB Command 物件及其強制介面,遠端伺服器就支援傳遞查詢。如需詳細資訊,請參閱 SQL Server OLE DB Programmer's Reference。
| 【內容導航】 |
| 第1頁:SQL Server 跨伺服器串連的多種方法解析 |
第2頁:SQL Server 跨伺服器串連的多種方法解析 |
| 第3頁:SQL Server 跨伺服器串連的多種方法解析 |
|