2011-11-19 91 views
0

我正在學習分佈式查詢並使用SQL Server 2008進行練習。SQL Server 2008中的分佈式查詢

我通過OPENROWSET語句成功從鏈接服務器獲取數據。

現在我想在事務中包裝一些數據修改語句並在鏈接服務器上執行。我該怎麼做?這項交易與本地服務器的交易相同嗎?

此外,我該如何實施安全設置以防止某人獲得密碼登錄到鏈接服務器?密碼是sp_addlinkedsrvlogin過程的參數。

回答

1

該查詢需要參與分佈式事務(需要MSDTC在兩端安裝和配置,防火牆上的適當端口打開...)。儘可能避免在分佈式查詢中保持開放事務。

可能是相關的:FIX: Error message when you run a distributed query in SQL Server 2005 or SQL Server 2008: "OLE DB provider 'SQLNCLI' for linked server '' returned message 'No transaction is active'"

Distributed Transaction Issue for Linked Server in SQL Server 2008

更新(響應在註釋中的問題提出):

wiki

數據庫系統實現分佈式事務交易 針對多個應用程序或主機。分佈式事務 強制執行多個系統或數據存儲上的ACID屬性,並且可能包括諸如數據庫,文件系統,消息傳遞系統和其他應用程序之類的系統。在分佈式交易中,協調服務確保交易的所有部分均適用於所有相關係統,即 。與數據庫和其他事務一樣,如果事務的任何部分失敗,整個事務將在所有受影響的系統中回滾。

+0

請您告訴我本地交易和分佈式交易有什麼區別? – Linh