2013-09-24 60 views
0

我對SQL很新,希望有人可以幫我解決下面的一般問題。SQL Server:在同一個表中複製,替換和粘貼

我有幾列,我想通過一個存儲過程來完成的三件事一大桌:

  1. 選擇國家大不列顛(GB)的所有數據,例如通過使用類似以下內容:

    SELECT * 
    FROM XYZ_TableData 
    WHERE (countryCode LIKE 'GB') 
    
  2. 複製上述所有到一個臨時表,並通過「XX」取代「GB」列COUNTRYCODE。

  3. 複製臨時表中的數據並將其插入上表(即複製的數據顯示XX而不是GB)。

任何人都可以幫助我在這裏開始?非常感謝您的幫助。

回答

2

把一切都一步到位,無需臨時表:

insert into mytable(field1,field2,field3,country) 
    select field1,field2,field3,'XX' As Country from mytable where country='GB' 

這是假設你正在嘗試一套新的記錄追加到表,不更新預先存在的記錄。我以一種方式閱讀這個問題,但特蕾莎再讀一遍......猜你需要決定你的意思。

+0

這是完美的,正是我的意思 - 非常感謝您的快速回復。 – user2571510

1

你爲什麼不進行更新?

UPDATE XYZ_TableData 
SET countryCode = 'XX' 
WHERE countryCode = 'GB' 
+0

儘管更新會替換GB行,但除GB之外,不會生成XX行。 – dpw

+0

啊,是的。我明白你的意思了。 – Theresa

+0

謝謝,特蕾莎 - 我正在尋找一些東西來複制它,而不是編輯它,因此上述內容完全覆蓋了它。 :-) – user2571510