如何訪問不同伺服器的資料庫

2021-05-27 11:40:29 字數 898 閱讀 7825

在我們做資料庫程式開發的時候,經常會遇到這種情況:需要將乙個資料庫伺服器中的資料匯入到另乙個資料庫伺服器的表中。通常我們會使用這種方法:先把乙個資料庫中的資料取出來放到某齣,然後再把這些資料一條條插入到目的資料庫中,這種方法效率較低,寫起程式來也很繁瑣,容易出錯。另外一種方法是使用bcp或bulk insert語句,將資料匯入到乙個檔案中,再從此檔案中匯出到目的資料庫,這種方法雖然效率稍高,但也有很多不如意的地方,單是在匯入時怎樣找到另外一台機器上的資料匯入檔案就很麻煩。

最方便的一種方法,我想也是效率最高的方法,應該是這樣:

比如有兩個資料庫伺服器:zl和ljw,裡面都有乙個資料庫taxitemp(也可以不同名),資料庫裡有乙個表,叫users,我們現在想把zl中的users資料匯入到ljw中,可以這樣寫sql語句(假設現在連線的是zl資料庫):

insert into ljw.taxitemp.dbo.users

select * from users

這樣,通過一條sql語句就完成了不同資料庫伺服器之間的資料複製。

有人會說,這種sql語句我也會寫,我也想到了,但是沒辦法執行。

的確,單純的這樣一條語句沒辦法執行,因為資料庫不知道ljw是什麼伺服器,也不知道怎樣登入,當然會報錯。

我們可以這樣解決註冊遠端資料庫伺服器和登入的問題:

註冊遠端資料庫伺服器:

exec sp_addlinkedserver 'ljw', n'sql server'

註冊遠端資料庫伺服器的登入方法:

exec sp_addlinkedsrvlogin 'ljw', 'false', null, 'sa', 'zz'

至於這兩個儲存過程的詳細用法,我就不多講了,大家看看幫助就明白了。

只要我們先執行遠端資料庫伺服器註冊和登入方法註冊,然後就可以把遠端資料庫當成本地資料庫使用了。

不同SQLServer伺服器資料庫之間的資料操作

1 建立鏈結伺服器 包括遠端以及本地伺服器的鏈結 exec sp addlinkedserver remote sqloledb 遠端伺服器名或ip位址 exec sp addlinkedsrvlogin local false null,使用者名稱 密碼 2 資料操作 1 查詢遠端伺服器資料庫表資...

不同伺服器資料庫之間的資料操作

首先執行 exec sp addlinkedserver itsv sqloledb 10.0.0.21 exec sp addlinkedsrvlogin itsv false null,sa 然後實現sql語句 delete from lr insert lr select from itsv....

不同伺服器資料庫之間的資料操作

首先執行 exec sp addlinkedserver itsv sqloledb 10.0.0.21 exec sp addlinkedsrvlogin itsv false null,sa 然後實現sql語句 delete from lr insert lr select from itsv....