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
请标记您的问题与您正在使用的数据库。 –