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 登入後,可以用以下格式操作...