ISNULL() OR 在 UPDATE 语句中为 NULL

Ash*_*dar 1 null sql-server sql-server-2012 update

我必须UPDATE在具有 50 万条记录的实时在线数据库上运行一条语句。我想知道哪个语句运行得更快:

Update Table set REC_ID = isnull(REC_ID,'')

Update Table set REC_ID = '' where REC_ID is null
Run Code Online (Sandbox Code Playgroud)

我正在使用 Microsoft SQL Server 2012

小智 5

这些查询不会做同样的事情。

Update Table set REC_ID = isnull(REC_ID,'')
Run Code Online (Sandbox Code Playgroud)

这将更新每条记录,如果REC_IDNULL,则将其设置为''.

Update Table set REC_ID = '' where REC_ID is NULL
Run Code Online (Sandbox Code Playgroud)

这只会更新 中包含空值的记录REC_ID,并将其设置为''
虽然它们最终都会给出相同的结果,但第二个将在更少的记录上执行(除非 everyREC_IDNULL),它应该更快。