原来一个存储过程执行正常,升级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
时间: 2024-10-15 03:42:47