2012-10-10 95 views
0

什麼是更高效率:使用join更新或使用where更新。SQL中的效率

這裏是我的代碼:

加入

CREATE procedure [dbo].[MyProc] 
@tvp myType readonly 
as 
update tb 
set pp_update=CONVERT(date,GETDATE(),101) 
from myTable tb 
join @tvp t on t.crc32 = tb.pp_crc32 

其中

CREATE procedure [dbo].[MyProc] 
@tvp myType readonly 
as 
update tb 
set pp_update=CONVERT(date,GETDATE(),101) 
from myTable tb 
where t.crc32 = tb.pp_crc32 

什麼是喜歡?如果我有兩個術語,我可以使用join

+1

第二個查詢不會工作,因爲您還沒有建立't'。你真正知道的唯一方法是描述它,但我希望兩者的性能具有可比性 - 這是一個長期的問題 - http://stackoverflow.com/questions/121631/inner-join-vs-where – dash

回答

1

我想你在第二個查詢時有一個錯字錯誤。也許你的意思是

CREATE procedure [dbo].[MyProc] 
@tvp myType readonly 
as 
update tb 
set pp_update=CONVERT(date,GETDATE(),101) 
from myTable tb, @tvp t 
where t.crc32 = tb.pp_crc32 

這兩個查詢是一樣的。唯一的問題是第一個查詢的語法是ANSI SQL-92,而另一個是SQL-89(舊的)語法。

+0

謝謝,如果我有2個術語,我可以使用第一個語法嗎? –

+0

第一種語法要好得多,因爲它比第二種語法更清晰。 –