0

更高效的是:使用 进行更新join或使用 进行更新where

这是我的代码:

加入

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

什么是首选?如果我有 2 个术语,我可以使用join??

4

1 回答 1

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(旧的)语法。

于 2012-10-10T08:32:57.430 回答