跨資料庫 伺服器匯入資料

2021-05-22 12:16:01 字數 3086 閱讀 7484

1.跨資料庫匯入資料

/*資料庫中表已建立*/

1). insert into [資料庫]. [所有者].[表](字段)

select [字段] from [其它資料庫].[所有者].[表] where [條件]

/*資料庫中表未建立*/

2).  select * into [資料庫]. [所有者].[表](字段)

from [其它資料庫].[所有者].[表] where [條件]

2.跨伺服器匯入資料

方法一:

用opendatasource

下面是個跨sqlserver查詢的示例

select tablea.*,tableb.* from opendatasource(

'sqloledb',

'data source=servera;user id=userid;password=password'

).databaseaname.dbo.tablea

left join

opendatasource(

'sqloledb',

'data source=serverb;user id=userid;password=password'

).databasebname.dbo.tableb on tablea.key=tableb.key

下面是個查詢的示例,它通過用於 jet 的 ole db 提供程式查詢 excel 電子**。

select *

from opendatasource( 'microsoft.jet.oledb.4.0',

'data source="c:/finance/account.xls";user id=admin;password=;extended properties=excel 5.0')...xactions

方法二(也可以在企業管理器裡新增 linkserver):

sp_addlinkedserver

建立乙個鏈結的伺服器,使其允許對分布式的、針對 ole db 資料來源的異類查詢進行訪問。在使用 sp_addlinkedserver 建立鏈結的伺服器之後,此伺服器就可以執行分布式查詢。如果鏈結伺服器定義為 microsoft? sql server?,則可執行遠端儲存過程。

語法sp_addlinkedserver [ @server = ] 'server'

[ , [ @srvproduct = ] 'product_name' ]

[ , [ @provider = ] 'provider_name' ]

[ , [ @datasrc = ] 'data_source' ]

[ , [ @location = ] 'location' ]

[ , [ @provstr = ] 'provider_string' ]

[ , [ @catalog = ] 'catalog' ]

許可權執行許可許可權預設授予 sysadmin 和 setupadmin 固定伺服器角色的成員。

簡單示例:

//建立linkserver

exec sp_addlinkedserver 'srv_lnk','','sqloledb','伺服器名'

//登陸linkserver

exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'使用者名稱','密碼'

//查詢linkserver的資料庫databasea的表tablea

select * from srv_lnk.databasea.dbo.tablea

//list the tables in the linked server

exec sp_tables_ex txtsrv

示例a. 使用用於 sql server 的 microsoft ole db 提供程式

使用用於 sql server 的 ole db 建立鏈結伺服器

下面的示例建立一台名為 seattlesales 的鏈結伺服器,該伺服器使用用於 sql server 的 microsoft ole db 提供程式。

use master

goexec sp_addlinkedserver

'seattlesales',

n'sql server'

go在 sql server 的例項上建立鏈結伺服器

此示例在 sql server 的例項上建立一台名為 s1_instance1 的鏈結伺服器,該伺服器使用 sql server 的 microsoft ole db 提供程式。

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

@provider='sqloledb', @datasrc='s1/instance1'

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

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

說明  本示例假設已經安裝 microsoft access 和示例 northwind 資料庫,且 northwind 資料庫駐留在 c:/msoffice/access/samples。

use master

go-- to use named parameters:

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'

go-- or to use no named parameters:

use master

goexec sp_addlinkedserver

'seattle mktg',

'ole db provider for jet',

'microsoft.jet.oledb.4.0',

'c:/msoffice/access/samples/northwind.mdb'

go

跨資料庫 跨伺服器查詢

if notexists select srvname from master dbo sysservers where srvname vlinkinadmin begin exec sp dropserver server vlinkinadmin droplogins droplogins 增...

跨伺服器資料庫拷貝資料

就在剛才我做了一件很讓人頭痛的事,不知道大家有沒有遇到過,就是一不小心把資料庫中的某個表裡的資料全刪除了,本來是想通過過濾條件去刪除一些不要的資料的,可是由於手速太快,條件還沒有選中,就按下了f5 鍵,一下子不知道如何是好!最後我上網也找了一些方法去解決這樣的問題,最終還是被我找到了!如下 1.啟用...

SQLSERVER跨資料伺服器,跨資料庫查詢

1 方法 這句是對映乙個遠端資料庫 exec sp addlinkedserver 10.25.37.134 sql server 這句是登入遠端資料庫 exec sp addlinkedsrvlogin 10.25.37.134 false null,sa abc.23 登入後,可以用以下格式操作...