数据库中已经有一个名为## Temp2的对象

时间:2015-03-23 18:17:38

标签: sql-server stored-procedures

我有一个全局临时表,我打算这样,因为我希望多个连接能够访问它。

我正在使用某种SQL服务器代理来使用并行性,因此在脚本执行时会建立多个连接。

我有一个名为dbo.Outputprocedure的过程,执行开始和结束。从这里调用多个过程,这些过程在不同的连接中执行。

现在,我的问题是我在##Temp2的开头和结尾都删除了dbo.Output Procedure表。 但是,它看起来不会被删除。

以下是我在创建之前用于删除##Temp2的查询。

IF OBJECT_ID('tempdb..dbo.##Temp2') Is not null
Begin
drop table ##Temp2
End

IF OBJECT_ID('tempdb..dbo.##Temp2') Is null
Begin
create table ##Temp2
(
Rownumber int not null,
--ValFromUser nvarchar(30),
--ColumnName nvarchar(30),
--ValFromFunc decimal(18, 4),
--FuncWeight decimal(18, 4),
Percentage decimal(18, 4) not null,

);

  /*some code*/

IF OBJECT_ID('tempdb..dbo.##Temp2') Is not null
Begin
PRINT 'DROPPED' -- not printed
DROP TABLE ##Temp2  
End 


 End

因为'删除'没有打印,它显然意味着表不会被删除,但为什么会这样?我不会在其他任何地方丢桌子。此外,我没有收到这个错误:

There is already an object named ##Temp2 in the database

如果我在开始执行之前删除表。究竟可能是什么问题以及我可以采取哪些措施来解决这个问题?

0 个答案:

没有答案