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

  

posted @ 2019-07-24 08:36  唯起  阅读(229)  评论(0编辑  收藏  举报