忘了放下临时表,现在我无法摆脱它

时间:2010-12-17 19:36:11

标签: temp-tables

我编写了一个存储过程并创建了一个临时表#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 个答案:

答案 0 :(得分:1)

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