为什么在 "CONCAT_NULL_YIELDS_NULL" 设置为 ON 时检查 temp table 是否存在不起作用?

Why does checking if temp table exists when "CONCAT_NULL_YIELDS_NULL" is set to ON doesn't work?

SET CONCAT_NULL_YIELDS_NULL OFF;  

IF OBJECT_ID ('tempdb..##QueryResults') IS NOT NULL
    DROP TABLE ##QueryResults;

为什么如果我将set CONCAT_NULL_YIELDS_NULL设置为off,如上所示,并且temp table ##QueryResults存在,它会成功删除,但如果我将其设置为ON,那么temp table 即使存在也不会被丢弃?

这在 SQL Server 2014 SP1

上按预期工作
SET NOCOUNT ON;

SET CONCAT_NULL_YIELDS_NULL OFF;  
CREATE TABLE ##QueryResults (foo int);

SELECT OBJECT_ID ('tempdb..##QueryResults');
IF OBJECT_ID ('tempdb..##QueryResults') IS NOT NULL
    DROP TABLE ##QueryResults;
SELECT OBJECT_ID ('tempdb..##QueryResults');
GO

SET CONCAT_NULL_YIELDS_NULL ON;  
CREATE TABLE ##QueryResults (foo int);

SELECT OBJECT_ID ('tempdb..##QueryResults');
IF OBJECT_ID ('tempdb..##QueryResults') IS NOT NULL
    DROP TABLE ##QueryResults;
SELECT OBJECT_ID ('tempdb..##QueryResults');

给予

-----------
373576369


-----------
NULL


-----------
389576426


-----------
NULL