首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-08-09 
object_id(#temp)返回值是null,但是临时表里有数据?在一个存储过程里写了这样的语句if object_id(#temp

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')

热点排行