2010-12-17 65 views
2

我写了一个存储过程并创建了一个临时表#TempHitRatioTable。我忘了将drop table语句放在我的过程中,现在不管我做什么,我都无法摆脱临时表,也无法重新执行该过程。我试图完全断开服务器并重新连接,但它仍然存在。我曾尝试以下语句:忘了放下临时表,现在我无法摆脱它

IF OBJECT_ID('tempdb..#TempHitRatioTable') IS NOT NULL 
DROP TABLE #TempHitRatioTable 

,我也试过:

IF EXISTS(SELECT * FROM sys.tables WHERE name LIKE '#TempHitRatioTable%') 
DROP TABLE #TempHitRatioTable 

IF EXISTS(SELECT 1 FROM sys.objects WHERE OBJECT_ID = OBJECT_ID(N'#TempHitRatioTable') AND type = (N'U')) DROP TABLE #TempHitRatioTable 

但我仍然无法摆脱该表的。我的存储过程不再运行,我试图运行它的水​​晶报告也没有运行,但似乎没有任何工作。请帮忙。

+1

你试过火吗? – John 2010-12-17 19:41:27

+0

你可以通过管理工作室连接到它吗? – 2010-12-17 19:49:09

+0

我可以通过SSMS连接到什么吗? – dazacher 2010-12-17 20:03:37

回答

1

我想清楚发生了什么事。我已经将光标底部的create table放在它的内部,所以每当游标迭代完成时添加一条新记录就已经创建了表。在创建游标之前,我将创建表移动到存储过程的顶部,添加了以下语句:IF OBJECT_ID('tempdb ..#TempHitRatioTable')IS NOT NULL DROP TABLE #TempHitRatioTable在过程的顶部,然后I将drop table语句添加到过程的结尾,一切都很好。我可以根据需要多次运行它,并将所有结果返回到不止一条记录。傻我:-)