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

SQL的操作順序

 
mybank98
一般會員


發表:4
回覆:14
積分:3
註冊:2006-09-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-10-20 15:48:46 IP:211.22.xxx.xxx 訂閱
大家好:
  1. 我想請問我有兩個table,名稱為old及new,二個table都有一個id的欄位。
  2. old的欄位較多,我想將new的table上面的資料update到old,請問要如何下sql語法。
  3. 目前我的作法如下:
    • 先查出new有那些資料,刪除old的資料,條件是在old有但new沒有的資料。delete確保離職人員的資料刪除
    • 更新old上面的資料。只要id相同,就用update以new的資料更新old上面的某些欄位
    • 刪除new上面與old相同id的資料。將剛才已更新的資料刪除。delete
    • 在old插入new的資料。將剩下的資料用insert的方式插入old資料表
請問兩個資料表之間的資料更新一定要照我的四步驟做嗎,是否有前輩有更簡潔,更好的方法。

------
Delphi程式設計工作室
網址:http://www.myhome.url.tw/
Mail:mybanksoft@gmail.com
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-01 18:29:40 IP:202.62.xxx.xxx 未訂閱
您好﹗
試試如下SQL語法﹕
[code]begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('Update OldTable O, NewTable N Set O.FieldName1=N.FieldName1, ');
ADOQuery1.SQL.Add('O.FieldName2=N.FieldName2, ... Where O.ID=N.ID');
ADOQuery1.ExecSQL;
end;[/code]
------
忻晟
mybank98
一般會員


發表:4
回覆:14
積分:3
註冊:2006-09-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-24 23:51:27 IP:211.76.xxx.xxx 訂閱
最近比近忙,所以現在才回您,
您的語法應該是以舊的table為底,將新的資料加入至原有的記錄中,但是如果這是一筆新的資料,這招會有用嗎,因為還沒有空試,所以先謝謝您的回答。
------
Delphi程式設計工作室
網址:http://www.myhome.url.tw/
Mail:mybanksoft@gmail.com
系統時間:2024-11-25 22:42:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!