exec sp_addlinkedserver ‘名稱’,”,’SQLOLEDB’,'遠端資料庫的位址’ exec sp_addlinkedsrvlogin ‘名稱’,'false’,'本地使用者名稱’,'遠端使用者名稱’,'遠端使用者密碼’ |
2、倒入表
insert 資料庫.dbo.表 select * from 遠端名稱.dbo.表 |
建立了連接配接後,試試看
二、方法二
通路不同電腦上的資料庫(遠端通路,隻好聯好網就一樣),如果經常通路或資料量較大,建議用連結伺服器方法。
1、建立連結伺服器
exec sp_addlinkedserver ‘srv_lnk’,”,’SQLOLEDB’,'遠端伺服器名或IP位址’ exec sp_addlinkedsrvlogin ‘srv_lnk’,'false’,null,’使用者名’,'密碼’ exec sp_serveroption ‘srv_lnk’,'rpc out’,'true’ –這個允許調用連結伺服器上的存儲過程 go |
2、使用示例
–查詢示例 select * from srv_lnk.資料庫名.dbo.表名 –導入示例 select * into 表 from srv_lnk.資料庫名.dbo.表名 go |
3、若不再使用時,删除連結伺服器
exec sp_dropserver ‘srv_lnk’,'droplogins’ |
三、方法三
如果隻是臨時通路,可以直接使用openrowset。
1、示例1
–查詢示例 select * from openrowset(‘SQLOLEDB’ ,’sql伺服器名’;'使用者名’;'密碼’,資料庫名.dbo.表名) –導入示例 select * into 表 from openrowset(‘SQLOLEDB’ ,’sql伺服器名’;'使用者名’;'密碼’,資料庫名.dbo.表名) |
2、示例2(此示例使用測試正常)
insert 資料庫名稱.dbo.表 select * from from openrowset(‘MSDASQL’, ‘DRIVER={SQL Server};SERVER=遠端伺服器位址;UID=使用者名;PWD=密碼’,表) AS a |
四、相關問題
問:當導入的資料量很大,而網絡突然中斷,會不會出現問題?
答:中斷的話,就等于什麼也沒做,也就是事務復原,重新運作。
五、随後的問題
問:由于在表中,通常都定義了自增量列及主鍵,而自增量列還進行了關連。由于在倒表時,自增量列不随原表變化,就造成了關聯關系的丢失,通常的做法是:
SET IDENTITY_INSERT 表名 ON insert into 表名(字段,字段,字段) values (64,’han’,'guo’) SET IDENTITY_INSERT 表名OFF |
即使用“SET IDENTITY_INSERT 表名 ON”将自增量關閉,但是,需要注意的是,當該表中沒有自增量字段時,使用該指令會産生一個錯誤。
是以,在沒有自增量字段的表中進行“插入”操作時,請不要使用“SET IDENTITY_INSERT 表名 ON”。