1. 新增鏈結伺服器(在本地伺服器通過link新增遠端伺服器)
exec sp_droplinkedsrvlogin remoteserverlink,null --刪除對映(錄與鏈結伺服器上遠端登入之間的對映)
exec sp_dropserver remoteserverlink--刪除遠端伺服器鏈結
exec sp_addlinkedserver
@server='remoteserverlink',--被訪問的伺服器別名
@srvproduct='',
@provider='sqloledb',
@datasrc='192.168.10.1' --要訪問的伺服器
exec sp_addlinkedsrvlogin
'remoteserverlink', --被訪問的伺服器別名
'false',
null,
'sa', --帳號
'123456' --密碼
2. 在事務開始前加入set xact_abort on語句
對於大多數 ole db 提供程式(包括 sql server),必須將隱式或顯示事務中的資料修改語句中的 xact_abort 設定為 on。唯一不需要該選項的情況是在提供程式支援巢狀事務時。
如:set xact_abort on
begin distributed transaction
inserte into ....................
commit tran
4. 遠端伺服器上的名稱解析
分布式事務的參與伺服器是需要相互訪問的,發起查詢的伺服器要根據機器名或ip查詢遠端伺服器的,同樣遠端伺服器也要查詢發起伺服器,遠端伺服器通過發起伺服器的機器名查詢伺服器,所以要保證遠端伺服器能夠通過發起伺服器的機器名訪問到發起伺服器。
一般的,兩個伺服器在同一網段機器名能就行很好的解析,但是也不保證都能很好的解析,所以比較保險的做法是:
在遠端伺服器的在「c:\windows\system32\drivers\etc\hosts」檔案中增加一條記錄:
***.***.***.*** 發起伺服器名
跨資料庫 跨伺服器查詢
if notexists select srvname from master dbo sysservers where srvname vlinkinadmin begin exec sp dropserver server vlinkinadmin droplogins droplogins 增...
跨資料庫 伺服器匯入資料
1.跨資料庫匯入資料 資料庫中表已建立 1 insert into 資料庫 所有者 表 字段 select 字段 from 其它資料庫 所有者 表 where 條件 資料庫中表未建立 2 select into 資料庫 所有者 表 字段 from 其它資料庫 所有者 表 where 條件 2.跨伺服...
跨伺服器訪問Sql資料庫
用openrowset連線遠端sql或插入資料 如果只是臨時訪問,可以直接用openrowset 查詢示例 select from openrowset sqloledb sql伺服器名 使用者名稱 密碼 資料庫名.dbo.表名 匯入示例 select into 表 from openrowset ...