ここに私の状況は、私は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
あなたはどのRDBMSを使用していますか? – Lamak
sql server 2008.私はこのためのスクリプトを書くと思いますか? – GLP