SQL Server的鏈接服務(wù)器技術(shù)小結(jié)
一、使用 Microsoft OLE DB Provider For ODBC 鏈接MySQL
安裝MySQL的ODBC驅(qū)動MyODBC
1、為MySQL建立一個ODBC系統(tǒng)數(shù)據(jù)源,例如:選擇數(shù)據(jù)庫為test ,數(shù)據(jù)源名稱為
myDSN
2、建立鏈接數(shù)據(jù)庫
EXEC sp_addlinkedserver @server = 'MySQLTest', @srvproduct='MySQL', @provider = 'MSDASQL', @datasrc = 'myDSN' GO EXEC sp_addlinkedsrvlogin @rmtsrvname='MySqlTest',@useself='false',@locallogin='sa',@rmtuser='mysql的用戶名',@rmtpassword='mysql的密碼'
3、查詢數(shù)據(jù)
SELECT * FROM OPENQUERY (MySQLTest ,'select * from 表' )
下面這個不行:
SELECT * FROM OPENQUERY (MySQLTest ,'表' )
注意:不能直接用select * from 鏈接服務(wù)器名.數(shù)據(jù)庫名.用戶名.表(或視圖)
四部分名稱查詢數(shù)據(jù),可能是個Bug.
二、使用 Microsoft OLE DB Provider For ORACLE 鏈接ORACLE
1、建立鏈接數(shù)據(jù)庫
sp_addlinkedserver '別名', 'Oracle', 'MSDAORA', '服務(wù)名' GO EXEC sp_addlinkedsrvlogin @rmtsrvname='別名',@useself='false',@locallogin='sa',@rmtuser='oracle用戶名',@rmtpassword='密碼'
2、查詢數(shù)據(jù)
SELECT * FROM 別名..用戶名.表(視圖)
注意:四部分名稱全部用大寫
3、執(zhí)行存儲過程
使用OPENQUERY:
SELECT *
FROM OPENQUERY(別名, 'exec 用戶名.存儲過程名')
三、設(shè)置鏈接服務(wù)器以訪問格式化文本文件
用于 Jet 的 Microsoft OLE DB 提供程序可用于訪問并查詢文本文件。
若要直接創(chuàng)建訪問文本文件的鏈接服務(wù)器而不將文件鏈接為 Access .mdb 文件中
的表,請執(zhí)行 sp_addlinkedserver,如下例所示。
提供程序是 Microsoft.Jet.OLEDB.4.0,提供程序字符串為"Text"。數(shù)據(jù)源是包
含文本文件的目錄的完整路徑名稱。schema.ini 文件(描述文本文件的結(jié)構(gòu))必
須與此文本文件存在于相同的目錄中。有關(guān)創(chuàng)建 schema.ini 文件的更多信息,
請參見 Jet 數(shù)據(jù)庫引擎文檔。
--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, NULL, 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 4-part name.
SELECT *
FROM txtsrv...[file1#txt]
四、鏈接SQL Server服務(wù)器:
1、使用 ODBC 的 Microsoft OLE DB 提供程序
EXEC sp_addlinkedserver '別名','','MSDASQL',NULL,NULL,'DRIVER={SQL
Server};SERVER=遠(yuǎn)程名;UID=用戶;PWD=密碼;'
如果加上參數(shù)@catalog,可以指定數(shù)據(jù)庫
exec sp_addlinkedsrvlogin @rmtsrvname='別名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密碼'
2、使用SQL Server 的 Microsoft OLE DB 提供程序
exec sp_addlinkedserver @server='別名',@provider='sqloledb',@srvproduct='',@datasrc='遠(yuǎn)程服務(wù)器名'
exec sp_addlinkedsrvlogin
@rmtsrvname='wzb',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密碼'
然后你就可以如下:
select * from 別名.庫名.dbo.表名
insert 庫名.dbo.表名 select * from 別名.庫名.dbo.表名
select * into 庫名.dbo.新表名 from 別名.庫名.dbo.表名
go
例1、
此示例在 SQL Server 的實(shí)例上創(chuàng)建一臺名為 S1_instance1 的鏈接服務(wù)器,
該服務(wù)器使用 SQL Server 的 Microsoft OLE DB 提供程序。
EXEC sp_addlinkedserver @server='S1_instance1', @srvproduct='',
@provider='SQLOLEDB', @datasrc='S1/instance1'
例2、
--建立鏈接服務(wù)器
EXEC sp_addlinkedserver 'xiaoming','','MSDASQL',NULL,NULL,'DRIVER={SQL
Server};SERVER=192.168.0.1;UID=sa;PWD=123;'
--建立鏈接服務(wù)器登錄映射
exec sp_addlinkedsrvlogin
@rmtsrvname='xiaoming',@useself='false',@locallogin='sa',@rmtuser='sa',
@rmtpassword='123'
go
--查詢數(shù)據(jù)
select * from xiaoming.schooladmin.dbo.agent
--刪除鏈接服務(wù)器登錄映射和鏈接服務(wù)器:
exec sp_droplinkedsrvlogin 'xiaoming' ,'sa'
exec sp_dropserver 'xiaoming'
注意事項(xiàng):
SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }
所以不能通過連接服務(wù)器設(shè)置此屬性
into 也存在這樣的問題
select * into xiaoming.northwind.dbo.tt from
xiaoming.northwind.dbo.tt
五、設(shè)置鏈接服務(wù)器以訪問Access數(shù)據(jù)庫
使用用于 Jet 的 Microsoft OLE DB 提供程序
此示例創(chuàng)建一臺名為 test的鏈接服務(wù)器。
說明 本示例假設(shè)已經(jīng)安裝 Microsoft Access 和示例 Northwind 數(shù)據(jù)庫,且
Northwind 數(shù)據(jù)庫駐留在 C:/。
USE master
GO
-- To use named parameters:
EXEC sp_addlinkedserver
@server = 'test',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'C:/Northwind.mdb'
GO
-- OR to use no named parameters:
USE master
GO
EXEC sp_addlinkedserver
'test',
'OLE DB Provider for Jet',
'Microsoft.Jet.OLEDB.4.0',
'C:/Northwind.mdb'
GO
使用
select * from test...表名
六、連接SYBASE
--首先,你要在SQL服務(wù)器上裝上訪問sybase的客戶端
--創(chuàng)建鏈接服務(wù)器
exec sp_addlinkedserver 'Sybase1', ' ', 'MSDASQL', NULL, NULL
,'Driver={Sybase System
11};Database=hisdb;Srvr=10.211.135.12;UID=sa;PWD=1111;'
使用:
select * from Sybase1.hisdb.dbo.table1
方法二
使用ODBC
SQL Server到SYBASE連接服務(wù)器的實(shí)現(xiàn)
作者: CCBZZP
本文的測試環(huán)境為:
操作系統(tǒng): WINDOWS2000 SERVER (繁體系統(tǒng))
安裝數(shù)據(jù)庫: SQLSERVER2000(英文版)和SYBASE8.0客戶端(英文版)
具體實(shí)現(xiàn)步驟:
1.要求pc機(jī)上安裝SYBASE8.0客戶端軟件和sqlserver2000軟件。
2.配置windows的ODBC數(shù)據(jù)源:
開始菜單—》程式集—》系統(tǒng)管理工具—》資料數(shù)據(jù)源(ODBC)—》進(jìn)入配置用
戶DSN或者系統(tǒng)DSN均可以:添加—》選擇ADAPTIVE SERVER ANYWHERE8.0—》自定
義數(shù)據(jù)源名稱(隨意如: SYBASETEST)—》數(shù)據(jù)庫名稱(必選?。稯K完成。
3. 選擇剛才配置的數(shù)據(jù)源名稱, 再選擇 配置, 跳出SYBASETEST MESSAGES:
The data source is not connected. Connecting to the data source will
provide useful information during configuration. Would you like to
connect to the data source?
選擇YES(OK或確認(rèn))即可
進(jìn)入CONNECT TO SYBASE DATABASE畫面:
USER ID: 輸入SYBASE DATABASE的用戶
PASSWORD: 輸入SYBASE DATABASE的用戶的密碼
CONNECTION MODE: 可以選擇默認(rèn)的SHARE模式
選擇OK(確認(rèn))即可!
配置和測試ODBC完成!
4.配置sqlserver2000中的連接服務(wù)器:
企業(yè)管理器—》安全性—》連接服務(wù)器—》右鍵新建連接服務(wù)器—》定義連接名
稱; 選其他數(shù)據(jù)源; 指定程序名稱為:SYBASE ADAPTIVE SERVER ANYWHERE
PROVIDER8.0; 產(chǎn)品名稱可不填; 數(shù)據(jù)源指定剛才ODBC中定義好的數(shù)據(jù)源名稱;
提供程序字符串按以下格式填寫:User ID=username;Password=userpasswd(或者
按如下格式:UID=username;PWD=userpasswd),這里的用戶名和密碼對應(yīng)所要連
接的SYBASE數(shù)據(jù)庫中的用戶名和密碼 —》 安全性標(biāo)簽頁里:設(shè)置用此安全上下
文進(jìn)行,并錄入SYBASE的數(shù)據(jù)庫用戶名和密碼—》服務(wù)器選項(xiàng)標(biāo)簽頁可默認(rèn)—》
確定。
5.準(zhǔn)備工作全部完成!在sqlserver企業(yè)管理器—》安全性—》連接服務(wù)器打開剛
建好的連接服務(wù)器—》點(diǎn)擊表,即可在右邊窗口看到該SYBASE數(shù)據(jù)庫用戶擁有的
的所有表名,但在這里還并不能查看表的記錄,這個需要在sqserver的查詢分析
器中用具體sql實(shí)現(xiàn)!訪問表時,使用格式為: [連接服務(wù)器名]..[SYBASE用戶
].[表名]。更詳細(xì)具體的使用這里不再贅述。
- Sql Server下數(shù)據(jù)庫鏈接的使用方法
- SqlDataSource 鏈接Access 數(shù)據(jù)
- SqlServer2005 鏈接服務(wù)器用法
- 簡單實(shí)用SQL腳本Part SQLServer 2005 鏈接服務(wù)器
- 通過創(chuàng)建SQLServer 2005到 Oracle10g 的鏈接服務(wù)器實(shí)現(xiàn)異構(gòu)數(shù)據(jù)庫數(shù)據(jù)轉(zhuǎn)換方案
- sqlserver 多庫查詢 sp_addlinkedserver使用方法(添加鏈接服務(wù)器)
- SQL Server高級內(nèi)容之子查詢和表鏈接概述及使用
- 關(guān)于MySql鏈接url參數(shù)的設(shè)置
- SQL Server創(chuàng)建鏈接服務(wù)器的存儲過程示例分享
- C#訪問SqlServer設(shè)置鏈接超時的方法
- 詳解SQL Server數(shù)據(jù)庫鏈接查詢的方式
相關(guān)文章
使用 SQL 服務(wù)器時,"評估期已過期"錯誤消息(解決方法)
這篇文章主要介紹了使用 SQL 服務(wù)器時,"評估期已過期"錯誤消息,本文分步驟給大家分享解決方法,需要的朋友可以參考下2019-12-12卸載VS2011 Developer Preview后Sql Server2008 R2建立數(shù)據(jù)庫關(guān)系圖報“找不到指定的
話說上回我為了嘗嘗螃蟹的味道而裝了 VS2011 Developer Preview,但是裝完后立馬卸載掉了,原因是這家伙的安裝目錄位置沒用,我設(shè)置到D盤的但是裝完后D盤的文件夾只有一百多M,而足足8G+的空間是在C盤上消耗的。2011-11-11SQL Server 數(shù)據(jù)頁緩沖區(qū)的內(nèi)存瓶頸分析
數(shù)據(jù)頁緩存是SQL Server的內(nèi)存使用主要的方面,也是占用量最大的部分。在一個穩(wěn)定的DB Server上,這部分內(nèi)存使用會相對較穩(wěn)定2012-08-08SQL Server誤區(qū)30日談 第6天 有關(guān)NULL位圖的三個誤區(qū)
NULL位圖是為了確定行中的哪一列是NULL值,哪一列不是。這樣做的目的是當(dāng)Select語句后包含存在NULL值的列時,避免了存儲引擎去讀所有的行來查看是否是NULL,從而提升了性能2013-01-01SQLServer高效解析JSON格式數(shù)據(jù)的實(shí)例過程
Sql Server從2016開始支持了一些json操作,最近的項(xiàng)目里也是好多地方直接用字段直接存成了json,下面這篇文章主要給大家介紹了關(guān)于SQLServer高效解析JSON格式數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2022-08-08Oracle、MySQL和SqlServe三種數(shù)據(jù)庫分頁查詢語句的區(qū)別介紹
這篇文章主要介紹了Oracle、MySQL和SqlServe三種數(shù)據(jù)庫分頁查詢語句的區(qū)別介紹 的相關(guān)資料,需要的朋友可以參考下2016-05-05sql2005 create file遇到操作系統(tǒng)錯誤5拒絕訪問 錯誤1802
嘗試打開或創(chuàng)建物理文件 'E:\Library.mdf' 時,CREATE FILE 遇到操作系統(tǒng)錯誤 5(拒絕訪問。)。2009-08-08