SQLServer的連結的伺服器技術小結

來源:互聯網
上載者:User

一、使用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使用者

 

].[表名]。更詳細具體的使用這裡不再贅述。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.