我有一个全局临时表,我打算这样,因为我希望多个连接能够访问它。
我正在使用某种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
如果我在开始执行之前删除表。究竟可能是什么问题以及我可以采取哪些措施来解决这个问题?