在一个存储过程里写了这样的语句
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')