一、使用MicrosoftOLEDBProviderForODBC連結MySQL
安裝MySQL的ODBC驅動MyODBC
1、為MySQL建立一個ODBC系統資料來源,例如:選擇資料庫為test,資料來源名稱為
myDSN
2、建立連結資料庫
EXECsp_addlinkedserver @server='MySQLTest',@srvproduct='MySQL',
@provider='MSDASQL',@datasrc='myDSN'
GO
EXECsp_addlinkedsrvlogin
@rmtsrvname='MySqlTest',@useself='false',@locallogin='sa',@rmtuser='mys
ql的使用者名稱',@rmtpassword='mysql的密碼'
3、查詢資料
SELECT*FROMOPENQUERY(MySQLTest,'select*from表')
下面這個不行:
SELECT*FROMOPENQUERY(MySQLTest,'表')
注意:不能直接用select*from連結的伺服器名.資料庫名.使用者名稱.表(或視圖)
四部分名稱查詢資料,可能是個Bug.
二、使用MicrosoftOLEDBProviderForORACLE連結ORACLE
1、建立連結資料庫
sp_addlinkedserver'別名','Oracle','MSDAORA','服務名'
GO
EXECsp_addlinkedsrvlogin @rmtsrvname='別名
',@useself='false',@locallogin='sa',@rmtuser='oracle使用者名稱
',@rmtpassword='密碼'
2、查詢資料
SELECT*FROM別名..使用者名稱.表(視圖)
注意:四部分名稱全部用大寫
3、執行預存程序
使用OPENQUERY:
SELECT*
FROMOPENQUERY(別名,'exec使用者名稱.預存程序名')
三、設定連結的伺服器以訪問格式化文字檔
用於Jet的MicrosoftOLEDB提供者可用於訪問並查詢文字檔。
若要直接建立訪問文字檔的連結的伺服器而不將檔案連結為Access.mdb檔案中
的表,請執行sp_addlinkedserver,如下例所示。
提供者是Microsoft.Jet.OLEDB.4.0,提供者字串為"Text"。資料來源是包
含文字檔的目錄的完整路徑名稱。schema.ini檔案(描述文字檔的結構)必
須與此文字檔存在於相同的目錄中。有關建立schema.ini檔案的更多資訊,
請參見Jet資料庫引擎文檔。
--Createalinkedserver.
EXECsp_addlinkedservertxtsrv,'Jet4.0',
'Microsoft.Jet.OLEDB.4.0',
'c:\data\distqry',
NULL,
'Text'
GO
--Setuploginmappings.
EXECsp_addlinkedsrvlogintxtsrv,FALSE,NULL,Admin,NULL
GO
--Listthetablesinthelinkedserver.
EXECsp_tables_extxtsrv
GO
--Queryoneofthetables:file1#txt
--usinga4-partname.
SELECT*
FROMtxtsrv...[file1#txt]
四、連結SQLServer伺服器:
1、使用ODBC的MicrosoftOLEDB提供者
EXECsp_addlinkedserver'別名','','MSDASQL',NULL,NULL,'DRIVER={SQL
Server};SERVER=遠程名;UID=使用者;PWD=密碼;'
如果加上參數@catalog,可以指定資料庫
execsp_addlinkedsrvlogin @rmtsrvname='別名
',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密碼'
2、使用SQLServer的MicrosoftOLEDB提供者
execsp_addlinkedserver@server='別名
',@provider='sqloledb',@srvproduct='',@datasrc='遠程伺服器名'
execsp_addlinkedsrvlogin
@rmtsrvname='wzb',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtp
assword='密碼'
然後你就可以如下:
select*from別名.庫名.dbo.表名
insert庫名.dbo.表名select*from別名.庫名.dbo.表名
select*into庫名.dbo.新表名from別名.庫名.dbo.表名
go
例1、
此樣本在SQLServer的執行個體上建立一台名為S1_instance1的連結的伺服器,
該伺服器使用SQLServer的MicrosoftOLEDB提供者。
EXEC sp_addlinkedserver @server='S1_instance1',@srvproduct='',
@provider='SQLOLEDB',
@datasrc='S1\instance1'
例2、
--建立連結的伺服器
EXECsp_addlinkedserver'xiaoming','','MSDASQL',NULL,NULL,'DRIVER={SQL
Server};SERVER=192.168.0.1;UID=sa;PWD=123;'
--建立連結的伺服器登入映射
execsp_addlinkedsrvlogin
@rmtsrvname='xiaoming',@useself='false',@locallogin='sa',@rmtuser='sa',
@rmtpassword='123'
go
--查詢資料
select*fromxiaoming.schooladmin.dbo.agent
--刪除連結的伺服器登入映射和連結的伺服器:
execsp_droplinkedsrvlogin'xiaoming','sa'
execsp_dropserver 'xiaoming'
注意事項:
SETIDENTITY_INSERT[database.[owner.]]{table}{ON|OFF}
所以不能通過串連伺服器設定此屬性
into也存在這樣的問題
select *into xiaoming.northwind.dbo.ttfrom
xiaoming.northwind.dbo.tt
五、設定連結的伺服器以訪問Access資料庫
使用用於Jet的MicrosoftOLEDB提供者
此樣本建立一台名為test的連結的伺服器。
說明 本樣本假設已經安裝MicrosoftAccess和樣本Northwind資料庫,且
Northwind資料庫駐留在C:\。
USEmaster
GO
--Tousenamedparameters:
EXECsp_addlinkedserver
@server='test',
@provider='Microsoft.Jet.OLEDB.4.0',
@srvproduct='OLEDBProviderforJet',
@datasrc='C:\Northwind.mdb'
GO
--ORtousenonamedparameters:
USEmaster
GO
EXECsp_addlinkedserver
'test',
'OLEDBProviderforJet',
'Microsoft.Jet.OLEDB.4.0',
'C:\Northwind.mdb'
GO
使用
select*fromtest...表名
六、串連SYBASE
--首先,你要在SQL伺服器上裝上訪問sybase的用戶端
--建立連結的伺服器
execsp_addlinkedserver'Sybase1','','MSDASQL',NULL,NULL
,'Driver={SybaseSystem
11};Database=hisdb;Srvr=10.211.135.12;UID=sa;PWD=1111;'
使用:
select*fromSybase1.hisdb.dbo.table1
方法二
使用ODBC
SQLServer到SYBASE串連伺服器的實現
作者: CCBZZP
本文的測試環境為:
作業系統: WINDOWS2000SERVER(繁體系統)
安裝資料庫:SQLSERVER2000(英文版)和SYBASE8.0用戶端(英文版)
具體實現步驟:
1.要求pc機上安裝SYBASE8.0用戶端軟體和sqlserver2000軟體。
2.配置windows的ODBC資料來源:
開始菜單—》程式集—》系統管理工具—》資料資料來源(ODBC)—》進入配置用
戶DSN或者系統DSN均可以:添加—》選擇ADAPTIVESERVERANYWHERE8.0—》自定
義資料來源名稱(隨意如:SYBASETEST)—》資料庫名稱(必選!)—》OK完成。
3.選擇剛才配置的資料來源名稱,再選擇配置,跳出SYBASETESTMESSAGES:
Thedatasourceisnotconnected. Connectingtothedatasourcewill
provideusefulinformationduringconfiguration. Wouldyouliketo
connecttothedatasource?
選擇YES(OK或確認)即可
進入CONNECTTOSYBASE DATABASE畫面:
USERID:輸入SYBASEDATABASE的使用者
PASSWORD:輸入SYBASEDATABASE的使用者的密碼
CONNECTION MODE:可以選擇預設的SHARE模式
選擇OK(確認)即可!
配置和測試ODBC完成!
4.配置sqlserver2000中的串連伺服器:
企業管理器—》安全性—》串連伺服器—》右鍵建立串連伺服器—》定義串連名
稱;選其他資料來源;指定程式名稱為:SYBASEADAPTIVESERVERANYWHERE
PROVIDER8.0;產品名稱可不填;資料來源指定剛才ODBC中定義好的資料來源名稱;
提供者字串按以下格式填寫:UserID=username;Password=userpasswd(或者
按如下格式:UID=username;PWD=userpasswd),這裡的使用者名稱和密碼對應所要連
接的SYBASE資料庫中的使用者名稱和密碼—》安全性標籤頁裡:設定用此安全上下
文進行,並錄入SYBASE的資料庫使用者名稱和密碼—》伺服器選項標籤頁可預設—》
確定。
5.準備工作全部完成!在sqlserver企業管理器—》安全性—》串連伺服器開啟剛
建好的串連伺服器—》點擊表,即可在右邊視窗看到該SYBASE資料庫使用者擁有的
的所有表名,但在這裡還並不能查看錶的記錄,這個需要在sqserver的查詢分析
器中用具體sql實現!訪問表時,使用格式為:[串連伺服器名]..[SYBASE使用者
].[表名]。更詳細具體的使用這裡不再贅述。