是否有更好的方法來編寫下列Microsoft SQL Server 2008命令?根據其他表的值更新字段
UPDATE TableB
SET TableBField2=0
WHERE TableBID IN(
SELECT TableBID
FROM TableB
JOIN TableA on TableB.TableAID=TableA.TableAID
WHERE TableBField2 < 0
AND TableAField1 = 0
)
說白了,我正在做的是根據連接表中的字段值來更新表格。我懷疑我是否使用IN()被認爲效率低下。
如果你能確定系統的其它部分從事實這個數據,那麼爲什麼存儲兩次?現在,每次觸摸TableA或TableB時都必須運行此更新,因爲計算結果可能已更改,因此TableBField2可能會過時。 – 2009-11-19 16:55:17