2009-10-06 46 views
0

假設你正在更新一個表,是一個表達式的結果,像這樣我可以避免在更新中重寫表格表達式嗎?

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執行一次,或兩次?我相信這同樣適用於任何種類的可更新查詢表達式。

此外,有沒有什麼辦法讓我別名,以便它不需要重複?

回答

2

正如我問,我想我會嘗試這個

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

和它的作品!

所以我會留在這裏以防萬一它可以幫助其他人。

+0

我經常使用UPDATE/DELETE別名。我發現它更清晰。 – gbn 2009-10-07 04:18:34

+0

我經常使用UPDATE/DELETE別名。我的別名比表名短,而且很懶。 – Sung 2009-10-13 00:16:57

相關問題