這是我的情況,我有一個名爲Statuses
(statusID, statusName
)的表,有22個狀態,還有其他表有statusID
列。如何更新整列?
現在客戶想要將Statuses
表中的所有22個狀態合併爲13個狀態。然後,我們必須更新,確切地說,映射所有其他表中的所有statusID
。
任何人都可以幫助我嗎?
這是我的情況,我有一個名爲Statuses
(statusID, statusName
)的表,有22個狀態,還有其他表有statusID
列。如何更新整列?
現在客戶想要將Statuses
表中的所有22個狀態合併爲13個狀態。然後,我們必須更新,確切地說,映射所有其他表中的所有statusID
。
任何人都可以幫助我嗎?
因爲這聽起來像是一次性的事情,所以最簡單的方法就是對地圖進行硬編碼。
例如
UPDATE
TABLE
SET StatusID = CASE WHEN StatusID = 1 THEN 5
WHEN StatusID = 2 THEN 5
WHEN StatusID = 3 THEN 1
WHEN StatusID = 4 THEN 5
WHEN StatusID = 5 THEN 2
...17 more times
END
,或者如果你已經有了一個映射表
UPDATE
TABLE
SET StatusID = map.NewStatusID
FROM
TABLE as T
INNER JOIN Map
ON t.StatusID = map.OldStatusID
所以你正在尋找做一個級聯更新? – Taryn 2012-02-27 16:32:42
您使用的是什麼RDBMS? – Lamak 2012-02-27 16:34:34
sql server 2008.我認爲只是爲此編寫一個腳本? – GLP 2012-02-27 16:44:53