当前位置: 代码迷 >> Sql Server >> object_id('#temp')返回值是null,但是临时表里有底据
  详细解决方案

object_id('#temp')返回值是null,但是临时表里有底据

热度:317   发布时间:2016-04-27 11:52:07.0
object_id('#temp')返回值是null,但是临时表里有数据?
在一个存储过程里写了这样的语句
if object_id('#temp') is not null 
drop table #temp

select... into #temp


但是发现临时表里有数据,而上一句没有执行。object_id('#temp') 返回值是null,请问是什么原因?

------解决方案--------------------
SQL code
if object_id('tempdb..#temp') is not null  drop table #tempgo
------解决方案--------------------
你这个判断语句语法不正确.
一般是这个格式:
SQL code
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tablename]') AND type in (N'U'))DROP TABLE [dbo].[tablename]
------解决方案--------------------
对于object_id的描述,见下面的帮助文档,可能LZ会清楚些

当该参数对系统函数可选时,则系统采用当前数据库、主机、服务器用户或数据库用户。内置函数后面必须跟圆括号。

如果指定一个临时表名,则必须在临时表名前面加上数据库名,例如:

SELECT OBJECT_ID('tempdb..#mytemptable')

  相关解决方案