SQL SERVER 2012 OBJECT_ID

原来一个存储过程执行正常,升级sqlserver后提示临时表已存在,后查找资料 sql server 2012  OBJECT_ID('临时表')返回的数值是负数,在 2008r2及前是正数,所以导致以下语句:

	IF (SELECT ISNULL(OBJECT_ID('TEMPDB..#XXXXXX'),0) ) >0 
	BEGIN   
		DROP TABLE TEMPDB.#XXXXXX
	END

  有问题,因为是负数所以不会大于0,但是临时表实际是存在的,调整为

	IF OBJECT_ID('TEMPDB..#XXXXXX') IS NOT NULL
	BEGIN   
		DROP TABLE TEMPDB.#XXXXXX
	END

  

原文地址:https://www.cnblogs.com/Wicher-lsl/p/11235658.html