我编写了一个存储过程并创建了一个临时表#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
但我仍然无法摆脱那张桌子。我的存储过程不再运行,我试图运行它的水晶报告也没有,但似乎没有任何效果。请帮忙。
答案 0 :(得分:1)
我弄清楚发生了什么。我把create table放在了游标的底部,所以每次游标迭代时都要添加一条新记录,表格已经创建了。在创建游标之前,我将create table移动到存储过程的顶部,添加了语句:IF OBJECT_ID('tempdb ..#TempHitRatioTable')IS NOT NULL DROP TABLE #TempHitRatioTable在程序的顶部,然后我将drop table语句添加到过程的结尾,一切都很好。我可以根据需要多次运行它,并将所有结果记录回来,而不仅仅是一条记录。傻我: - )