如何 在二台 MSSQL 使用 交易機制呢? |
尚未結案
|
saam
初階會員 發表:61 回覆:75 積分:27 註冊:2003-03-03 發送簡訊給我 |
|
change.jian
版主 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
想想一台 SQL Server 為何失敗時候可以回覆, 成功才能 commit
因為先找到要改的東西留存下來了, 不成功就改回來 (這是 SQL Server 幫你做了) 兩台 SQL Server 的情況, 您就自己做, 步驟
1.找出 SQL Server A 要 update 的資料, 另建立一個暫存 table 放置
2.update SQL Server A 資料
3.如果 A 成功就 update SQL Server B 資料; 如果 B 也成功就砍了暫存 table
4.A 不成功 B 就不要做了, 用暫時 table 復原 A 資料 *********************
如果您滿意答案,請結案
*********************
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
change.jian
版主 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
好樣的....那如果 update A成功了,然後update B失敗了, A剛update的資料又剛好被其他user改了,怎麼辦??
引言: 想想一台 SQL Server 為何失敗時候可以回覆, 成功才能 commit 因為先找到要改的東西留存下來了, 不成功就改回來 (這是 SQL Server 幫你做了) 兩台 SQL Server 的情況, 您就自己做, 步驟 1.找出 SQL Server A 要 update 的資料, 另建立一個暫存 table 放置 2.update SQL Server A 資料 3.如果 A 成功就 update SQL Server B 資料; 如果 B 也成功就砍了暫存 table 4.A 不成功 B 就不要做了, 用暫時 table 復原 A 資料 ********************* 如果您滿意答案,請結案 ********************* |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 在 sql server 中使用分散式交易即可, 你可以參考[線上叢書]中的[BEGIN DISTRIBUTED TRANSACTION]這個指令即可, 列出一範例,
USE pubs GO BEGIN DISTRIBUTED TRANSACTION UPDATE authors SET au_lname = 'McDonald' WHERE au_id = '409-56-7008' EXECUTE remote.pubs.dbo.changeauth_lname '409-56-7008','McDonald' COMMIT TRAN GO其中的 remote 就是一個利用 sp_addlinkedserver 進來的另一台 sql server. |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
> change.jian
> 好樣的....那如果 update A成功了,然後update B失敗了, A剛update的資料又剛好被其他user改了,怎麼辦?? 沒錯, 這種作法會有這種缺失, 基本上不合適更新頻繁, 或極重要的資訊 另一種作法, 小弟以前兩台 SQL Server 設定即時同步, 程式只更新 A 台, A 有異動會通知另一台 B 更新,B 台不給網頁程式寫入 , A, B 兩台都提供讀取功能 *********************
如果您滿意答案,請結案
*********************
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |