我可以避免在更新中重写表表达式吗?

时间:2009-10-06 23:02:01

标签: sql sql-server tsql syntax

假设您正在更新一个表达结果的表,如此

UPDATE OPENQUERY( server, 'SELECT a from b' )
   SET rem.a = loc.a
  FROM OPENQUERY( server, 'SELECT a from b' ) rem
      ,local_table loc
 WHERE rem.id = loc.id

OPENQUERY会执行一次还是两次?我相信这同样适用于任何类型的可更新查询表达式。

另外,有没有办法让我别名,以便不需要重复?

1 个答案:

答案 0 :(得分:2)

就像我问的那样,我以为我会尝试这个

UPDATE rem
   SET rem.a = loc.a
  FROM OPENQUERY( server, 'SELECT a from b' ) rem
      ,local_table loc
 WHERE rem.id = loc.id

它有效!

所以我会留在这里,以防它可以帮助其他人。