SQLServer的鏈結伺服器技術小結 轉)

2021-04-12 20:54:50 字數 4182 閱讀 6868

一、使用 microsoft ole db provider for odbc 鏈結mysql

安裝mysql的odbc驅動myodbc

1、為mysql建立乙個odbc系統資料來源,例如:選擇資料庫為test ,資料來源名稱為

mydsn

2、建立鏈結資料庫

exec sp_addlinkedserver @server = 'mysqltest', @srvproduct='mysql',

@provider = 'msdasql', @datasrc = 'mydsn'

goexec sp_addlinkedsrvlogin

@rmtsrvname='mysqltest',@useself='false',@locallogin='sa',@rmtuser='mys

ql的使用者名稱',@rmtpassword='mysql的密碼'

3、查詢資料

select * from openquery (mysqltest ,'select * from 表' )

下面這個不行:

select * from openquery (mysqltest ,'表' )

注意:不能直接用select * from 鏈結伺服器名.資料庫名.使用者名稱.表(或檢視)

四部分名稱查詢資料,可能是個bug.

二、使用 microsoft ole db provider for oracle 鏈結oracle

1、建立鏈結資料庫

sp_addlinkedserver '別名', 'oracle', 'msdaora', '服務名'

goexec sp_addlinkedsrvlogin @rmtsrvname='別名

',@useself='false',@locallogin='sa',@rmtuser='oracle使用者名稱

',@rmtpassword='密碼'

2、查詢資料

select * from 別名..使用者名稱.表(檢視)

注意:四部分名稱全部用大寫

3、執行儲存過程

使用openquery:

select *

from openquery(別名, 'exec 使用者名稱.儲存過程名')

三、設定鏈結伺服器以訪問格式化文字檔案

1、使用 odbc 的 microsoft ole db 提供程式

exec sp_addlinkedserver '別名','','msdasql',null,null,'driver=;server=遠端名;uid=使用者;pwd=密碼;'

如果加上引數@catalog,可以指定資料庫

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='遠端伺服器名'

exec sp_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、

此示例在 sql server 的例項上建立一台名為 s1_instance1 的鏈結伺服器,

該伺服器使用 sql server 的 microsoft ole db 提供程式。

exec sp_addlinkedserver @server='s1_instance1', @srvproduct='',

@provider='sqloledb',

@datasrc='s1/instance1'

例2、--建立鏈結伺服器

exec sp_addlinkedserver 'xiaoming','','msdasql',null,null,'driver=;server=192.168.0.1;uid=sa;pwd=123;'

--建立鏈結伺服器登入對映

exec sp_addlinkedsrvlogin

@rmtsrvname='xiaoming',@useself='false',@locallogin='sa',@rmtuser='sa',

@rmtpassword='123'

go--查詢資料

select * from xiaoming.schooladmin.dbo.agent

--刪除鏈結伺服器登入對映和鏈結伺服器:

exec sp_droplinkedsrvlogin 'xiaoming' ,'sa'

exec sp_dropserver 'xiaoming'

注意事項:

set identity_insert [ database.[ owner.] ]  

所以不能通過連線伺服器設定此屬性

into 也存在這樣的問題

select * into xiaoming.northwind.dbo.tt from

xiaoming.northwind.dbo.tt

五、設定鏈結伺服器以訪問access資料庫

使用用於 jet 的 microsoft ole db 提供程式

此示例建立一台名為 test的鏈結伺服器。

說明 本示例假設已經安裝 microsoft access 和示例 northwind 資料庫,且

northwind 資料庫駐留在 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

goexec sp_addlinkedserver

'test',

'ole db provider for jet',

'microsoft.jet.oledb.4.0',

'c:/northwind.mdb'

go使用

select * from test...表名

六、連線sybasethe 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或確認)即可

進入connect to sybase database畫面:

user id: 輸入sybase database的使用者

password: 輸入sybase database的使用者的密碼

connection mode: 可以選擇預設的share模式

選擇ok(確認)即可!

配置和測試odbc完成!

4.配置sqlserver2000中的連線伺服器:

企業管理器—》安全性—》連線伺服器—》右鍵新建連線伺服器—》定義連線名稱; 選其他資料來源; 指定程式名稱為:sybase adaptive server anywhere provider8.0; 產品名稱可不填; 資料來源指定剛才odbc中定義好的資料來源名稱;提供程式字串按以下格式填寫:user id=username;password=userpasswd(或者按如下格式:uid=

SQLServer的鏈結伺服器

今天在研究自動化測試時,需要檢視access資料檔案的資料表,但是沒有裝access,找來找去找不到office的安裝盤,情急下突然想起在sqlserver中可以新增 鏈結伺服器 來訪問其他型別的資料庫,方法如下 1 開啟sqlserver企業管理器,選擇 安全性 鏈結伺服器 單擊右鍵,選擇 新建鏈...

SQLServer建立鏈結伺服器

use master go 新增伺服器 exec sp addlinkedserver server hang 此名字可以隨便取 srvproduct sql provider sqloledb datasrc 10.130.26.x 說明 另外一台伺服器的ip go 登陸伺服器 exec sp a...

SQL SERVER 鏈結伺服器Mysql

2 管理工具 odbc資料來源 系統dsn 新增 選擇 mysql odbc 5.3 unicode driver 完成 會跳出來mysql連線引數 data source name 資料來源名稱 decription 描述,隨便寫 server mysql伺服器的ip port mysql的埠,預...