線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1224
推到 Plurk!
推到 Facebook!

關於誇資料庫UPDATE執行後回傳訊息正確,但查詢結果還是舊資料

答題得分者是:老大仔
delphi X
一般會員


發表:4
回覆:6
積分:7
註冊:2015-05-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2015-07-26 09:19:05 IP:59.105.xxx.xxx 訂閱
各位大大,
目前在SQL Server 2008同一主機不同資料庫的Table更新資料,透過SQL Server Management Studio執行後回傳訊息(107個資料列受到影響),可是回目的資料庫查詢卻仍舊是舊資料,不知是SQL語法錯誤,還是SQL Server需要再設定甚麼?

來源資料庫 A (Table1有143筆資料)
目的資料庫 B (Table1有107筆資料)
兩個資料庫的資料表名稱和欄位名稱及結構都一樣

[code sql]
use A
UPDATE B.dbo.Table1
SET B.dbo.Table1.Field1 = Field1
WHERE B.dbo.Table1.Field1 = Field1
[/code]

執行後傳回訊息(107個資料列受到影響) ***與目的資料庫B的筆數吻合
但實際在B資料庫查詢並沒有將A資料庫的資料更新過來
編輯記錄
delphi X 重新編輯於 2015-07-26 15:32:17, 註解 無‧
delphi X 重新編輯於 2015-07-26 15:33:02, 註解 無‧
delphi X 重新編輯於 2015-07-26 15:35:14, 註解 無‧
delphi X 重新編輯於 2015-07-26 15:36:47, 註解 無‧
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2015-07-27 08:19:00 IP:210.61.xxx.xxx 未訂閱
試試以下





[code sql]
use A

UPDATE B.dbo.Table1
SET B.dbo.Table1.FieldN = A.dbo.Table1.FieldN
WHERE B.dbo.Table1.Field1 = A.dbo.Table1.Field1

[/code]

編輯記錄
老大仔 重新編輯於 2015-07-27 08:19:33, 註解 無‧
Ray_Lin
一般會員


發表:0
回覆:30
積分:11
註冊:2015-07-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2015-07-27 11:54:55 IP:114.32.xxx.xxx 未訂閱
結果會一樣是因為自己更新自己,所以有更新,但是結果一樣。
建議用老大仔的方式,指定詳細的來源做更新。
delphi X
一般會員


發表:4
回覆:6
積分:7
註冊:2015-05-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2015-07-29 23:47:32 IP:60.249.xxx.xxx 訂閱
謝謝老大仔及Ray_Lin二位前輩,就如Ray_Lin所說,是我疏忽了把SET 欄位搞錯了。
系統時間:2017-11-20 12:07:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!