是否有更好的方法来编写下列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