1
我遇到的情況,我在下面的方式更新約40000工作人員記錄:結合mupltiple更新語句
- 我要誰擁有1 作用-ID首次更新工
- 然後剩下的只有在上次更新中沒有更新的角色ID爲2,0,3的角色。
我的問題:有什麼辦法可以將所有4個結合到一個更新語句中嗎?
我擔心的是,我的生產服務器功能非常強大,並且可能會因爲我一次又一次地更新同一個表而導致死鎖。我們在其他地方有這個問題,我們必須替換用戶定義的功能。
下面是示例更新腳本:
UPDATE A
SET Start_Office = B.TX_LCTN,
Start_Worker_ID = B.wrkr_id_prsn
FROM #FinalRes A
INNER JOIN #StartData B ON A.ID_CASE = B.ID_CASE
AND A.Case_Open_Date = B.Case_Open_Date
WHERE B.CD_ROLE = 1
UPDATE A
SET Start_Office = B.TX_LCTN,
Start_Worker_ID = B.wrkr_id_prsn
FROM #FinalRes A
INNER JOIN #StartData B ON A.ID_CASE = B.ID_CASE
AND A.Case_Open_Date = B.Case_Open_Date
WHERE A.Start_Worker_ID IS NULL
AND B.CD_ROLE = 2
UPDATE A
SET Start_Office = B.TX_LCTN,
Start_Worker_ID = B.wrkr_id_prsn
FROM #FinalRes A
INNER JOIN #StartData B ON A.ID_CASE = B.ID_CASE
AND A.Case_Open_Date = B.Case_Open_Date
WHERE A.Start_Worker_ID IS NULL
AND B.CD_ROLE = 0
UPDATE A
SET Start_Office = B.TX_LCTN,
Start_Worker_ID = B.wrkr_id_prsn
FROM #FinalRes A
INNER JOIN #StartData B ON A.ID_CASE = B.ID_CASE
AND A.Case_Open_Date = B.Case_Open_Date
WHERE A.Start_Worker_ID IS NULL
AND B.CD_ROLE = 3
請標記您的問題與您正在使用的數據庫。 –