SQL SERVER2005建Link Server
轉自http://allanpie.blog.163.com/blog/static/2132041020091902648766/
SQL SERVER2005建Link Server
SQL Server2005中的link server類似於Oracle裡面的DB Link , 透過link server可以訪問另一個資料庫中的物件 , 這些Link Server可以是SQL Server , 也可以是Oracle等其他型別的資料庫, 建好Link Server後就可以象操作當前資料庫一樣操作其他資料庫了,建立的過程非常簡單 , 只需要執行幾個系統儲存過程並傳入適當的引數就可以了 。
第一個要執行的儲存過程格式如下 :
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ] [ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ] [ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
[ @server = ] 'server'
要建立的連結伺服器的名稱。server 的資料型別為 sysname,沒有預設值。
[ @srvproduct = ] 'product_name'要新增為連結伺服器的 OLE DB 資料來源的產品名稱。product_name 的資料型別為 nvarchar(128),預設值為 NULL。如果為 SQL Server,則不必指定 provider_name、data_source、location、provider_string 和 catalog。
[ @provider = ] 'provider_name'與此資料來源對應的 OLE DB 訪問介面的唯一程式設計識別符號 (PROGID)。對於當前計算機中安裝的指定 OLE DB 訪問介面,provider_name 必須唯一。provider_name 的資料型別為 nvarchar(128),預設值為 NULL;但如果忽略 provider_name,則使用 SQLNCLI。(使用 SQLNCLI 並且 SQL Server 將重定向到 SQL Server Native Client OLE DB 訪問介面的最新版本。)OLE DB 訪問介面應以指定的 PROGID 在登錄檔中註冊。
[ @datasrc = ] 'data_source'由 OLE DB 訪問介面解釋的資料來源的名稱。data_source 的資料型別為 nvarchar(4000)。data_source 作為 DBPROP_INIT_DATASOURCE 屬性傳遞以初始化 OLE DB 訪問介面。
[ @location = ] 'location'由 OLE DB 訪問介面解釋的資料庫的位置。location 的資料型別為 nvarchar(4000),預設值為 NULL。location 作為 DBPROP_INIT_LOCATION 屬性傳遞以初始化 OLE DB 訪問介面。
[ @provstr = ] 'provider_string'OLE DB 訪問介面特定的連線字串,它可標識唯一的資料來源。provider_string 的資料型別為 nvarchar(4000),預設值為 NULL。provstr 或傳遞給 IDataInitialize 或設定為 DBPROP_INIT_PROVIDERSTRING 屬性以初始化 OLE DB 訪問介面。
當針對 SQL Server Native Client OLE DB 訪問介面建立連結伺服器時,可以使用 SERVER 關鍵字來指定例項,即使用 SERVER=servername\instancename 指定特定 SQL Server 例項。servername 是執行 SQL Server 的計算機的名稱,instancename 是使用者要連線的特定 SQL Server 例項的名稱。
比如我Local端有一個SQL Server ,裡面有兩個資料庫 LocalTest和MyDataBase , 我想在LocalTest裡面訪問MyDataBase裡面的一個表TableTest1 , 建立過程如下 :
1 。 開啟SQL Server2005整合開發環境 , 連線到要建立Link Server的資料主機 , 然後新建一個查詢 ,在查詢視窗中輸入如下的程式碼 :
EXEC master.dbo.sp_addlinkedserver
@server = N'LINK_LOCAL',
@srvproduct=N'',
@provider = N'SQLNCLI',
@datasrc = N'(Local)'
注意 :每個引數在賦值的時候都在前面加多一個N表示後面的值當作Unicode來處理
說明如下 :
@server :link的名字,建好Link後其他資料庫就可以透過這個名字來訪問
@srvproduct :為空 ,引數佔位符
@provider :驅動程式碼
@datasrc :資料庫伺服器 , 因為是本機端的 , 所以用(Local)
第二 :建立好這個Link之後還需要給給這個link加登陸的賬號密碼 , 因為從外部訪問這個Link server的時候需要先登陸 , 儲存過程如下 :
EXEC sp_addlinkedsrvlogin 'LINK_LOCAL', 'false', null, 'account', 'password'
說明 :第一個引數的值是上面建立的link的名稱 , 最後兩個引數引數分別為賬號密碼 , 執行後可以在繼承開發環境中看到新建的這個link server , 如下圖 :
第三 : 建立好後還可以給這個LInk server加一些許可權 :
如 :EXEC sp_serveroption ‘REMOTE_SERVER_NAME’, ‘data access’, ‘true’
第四 :然後我們就可以在任何需要的地方訪問這個LInk server了 , 如 :
select * from LINK_Local.MyDataBase.dbo.TableTest1
附 :透過 OLE DB 訪問資料來源而建立連結伺服器的方法
連線不同資料庫例項如下 :
A. 下例使用 SQL Server Native Client OLE DB 訪問介面在 SQL Server 例項中建立連結伺服器
EXEC sp_addlinkedserver
@server='S1_instance1',
@srvproduct='',
@provider='SQLNCLI',
@datasrc='S1\instance1'
B. 使用 Microsoft OLE DB Provider for Microsoft Access
EXEC sp_addlinkedserver
@server = 'SEATTLE Mktg',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'C:\MSOffice\Access\Samples\Northwind.mdb'
C. 使用 Microsoft OLE DB Provider for Oracle
EXEC sp_addlinkedserver
@server = 'LONDON Mktg',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'MyServer'
D. 將 Microsoft OLE DB Provider for ODBC 與 data_source 引數一起使用
EXEC sp_addlinkedserver
@server = 'SEATTLE Payroll',
@srvproduct = '',
@provider = 'MSDASQL',
@datasrc = 'LocalServer'
E. 將 Microsoft OLE DB Provider 用於 Excel 電子表格
EXEC sp_addlinkedserver 'ExcelSource',
'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'c:\MyData\DistExcl.xls',
NULL,
'Excel 5.0'
H. 使用 Microsoft OLE DB Provider for Jet 訪問文字檔案
--Create a linked server.
EXEC sp_addlinkedserver txtsrv, 'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'c:\data\distqry',
NULL,
'Text'
GO
--Set up login mappings.
EXEC sp_addlinkedsrvlogin txtsrv, FALSE, Admin, NULL
GO
--List the tables in the linked server.
EXEC sp_tables_ex txtsrv
GO
--Query one of the tables: file1#txt
--using a four-part name.
SELECT *
I. 使用 Microsoft OLE DB Provider for DB2
EXEC sp_addlinkedserver
@server='DB2',
@srvproduct='Microsoft OLE DB Provider for DB2',
@catalog='DB2',
@provider='DB2OLEDB',
@provstr='Initial Catalog=PUBS;
Data Source=DB2;
HostCCSID=1252;
Network Address=XYZ;
Network Port=50000;
Package Collection=admin;
參考文章 :
Default Schema=admin;'
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-682567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server2005快捷鍵SQLServer
- oracle11g gateway for sql server2005配置OracleGatewaySQLServer
- SQL Server2005使用CTE實現遞迴QCSQLServer遞迴
- 業務需要,今天開始學習SQL Server2005SQLServer
- SQL Server2005 表分割槽三步曲SQLServer
- Windows server2003 + sql server2005 叢集配置安裝WindowsServerSQL
- win8 64位系統安裝sql server2005SQLServer
- SQL server2005的ssis包資料匯入匯出SQLServer
- Sql server2005 優化查詢速度50個方法小結SQLServer優化
- 瞭解SQL Server2005新架構規則的優勢SQLServer架構
- sql server2005檔案解除安裝順序【轉載微軟】SQLServer微軟
- 關於SQL Server2005/2008中架構的理解SQLServer架構
- [zt SQL Server2005複製功能實現與Oracle資料庫同步SQLServerOracle資料庫
- NC50安裝過程(win2003+Sql server2005)SQLServer
- 使用SQL Server2005的新函式構造分頁儲存過程SQLServer函式儲存過程
- SQL Server內建的HTAP技術SQLServer
- SQL SERVER2005 SP3(SP4)後的累計補丁下載地址SQLServer
- SQL SERVER 中構建執行動態SQL語句SQLServer
- 【SQL Server2005頁面儲存4之--非聚集索引行在葉級別儲存】SQLServer索引
- SQL Server2005 實現資料庫快取依賴的實現步驟整理SQLServer資料庫快取
- sql server 建臨時表修改資料SQLServer
- 【SQL Server2005頁面儲存5之--非聚集索引行在非葉級別儲存】SQLServer索引
- 給DBA的SQL Server培訓建議PHSQLServer
- SQL Server 內建轉換函式介紹SQLServer函式
- 針對SQL Server的最佳化建議SQLServer
- SQL Server中建Linked Server時首次選Oracle Provider for OLE 導致SQL當機SQLServerOracleIDE
- 匯出db link的SQLSQL
- SQL Server資料倉儲的構建與分析SQLServer
- SQL in ORACLE and SQL ServerSQLOracleServer
- [原創]SQL Server 2005 映象構建手冊SQLServer
- sql ServerSQLServer
- 解決在Sql Server2005查詢分析器中讀取Excel表出現的一些問題SQLServerExcel
- SQL Server連線SQL Server、SQL Server連線ORACLE 連結伺服器SQLServerOracle伺服器
- SQL Server調優實戰 亂建聚集索引的後果SQLServer索引
- 提高SQL Server安全性的一些建議(1)SQLServer
- SQL Server常用工具——SQL Server Powershell ExtensionsSQLServer
- sql server with ...as 用法SQLServer
- SQL Server raiserrorSQLServerAIError