全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1296
推到 Plurk!
推到 Facebook!

如何 在二台 MSSQL 使用 交易機制呢?

尚未結案
saam
初階會員


發表:61
回覆:75
積分:27
註冊:2003-03-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-20 09:48:43 IP:203.71.xxx.xxx 未訂閱
請問各位大大: 我用二個 TSQLCONNECTION 各連一台MSSQL 如果想各下一個 UPDATE 語法在 二個MSSQL, 並能同時成功才COMMIT~ 要怎麼做呢? 搭配 TSQLQUERY 可以嗎? 希望大大能提供一個SAMPLE 給在下參考一下~ ^^
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-20 10:55:14 IP:61.218.xxx.xxx 未訂閱
我沒有用過MSSQL,但MSSQL應該有proxy table的機制,在其中一台MSSQL建立proxy table,連到另外一台MSSQL.搜尋一下proxy table,應該可以得到一些資料
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-20 14:18:54 IP:210.69.xxx.xxx 未訂閱
想想一台 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-20 14:47:11 IP:61.218.xxx.xxx 未訂閱
好樣的....那如果 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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-20 18:14:52 IP:203.95.xxx.xxx 未訂閱
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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-21 12:56:27 IP:203.204.xxx.xxx 未訂閱
> change.jian > 好樣的....那如果 update A成功了,然後update B失敗了, A剛update的資料又剛好被其他user改了,怎麼辦?? 沒錯, 這種作法會有這種缺失, 基本上不合適更新頻繁, 或極重要的資訊 另一種作法, 小弟以前兩台 SQL Server 設定即時同步, 程式只更新 A 台, A 有異動會通知另一台 B 更新,B 台不給網頁程式寫入 , A, B 兩台都提供讀取功能 ********************* 如果您滿意答案,請結案 *********************
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
系統時間:2024-06-26 19:48:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!