我遇到了以下几行的SQL Server查询:
UPDATE R SET R.fieldX = C.fieldX,
R.fieldY = C.fieldY,
R.fieldZ = C.fieldZ,
...etc, about 20 field assignments....
FROM TableA R JOIN TableB T ON T.fieldA = R.fieldA AND T.fieldB = R.fieldB JOIN tableC C ON T.fieldC = C.fieldC AND T.fieldD = C.fieldD AND R.fieldE = C.fieldE AND R.fieldF = C.FieldF WHERE T.fieldE = 0 AND R.FieldE = 0
它的自引用性质(更新参与多表连接的表)看起来很可疑,虽然它有效,但表有大量行,它会消耗大量的磁盘空间在完成之前(如果它在用完驱动器空间之前完全完成)。
查询的目的是将数据从各种连接表传输到目标表。
是否有更有效的方法来实现这一目标?