Забыл сбросить временную таблицу, теперь я не могу избавиться от нее - PullRequest
2 голосов
/ 17 декабря 2010

Я написал хранимую процедуру и создал временную таблицу #TempHitRatioTable. Я забыл поместить оператор удаления таблицы в мою процедуру, и теперь, что бы я ни делал, я не могу избавиться от временной таблицы и не могу повторно выполнить процедуру. Я попытался полностью отключиться от сервера и снова подключиться, но он все еще там. Я пробовал следующие заявления:

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 Ответ

1 голос
/ 17 декабря 2010

Я понял, что происходит.Я поместил таблицу создания внизу курсора внутри нее, поэтому каждый раз, когда курсор перебирался, чтобы добавить новую запись, таблица уже была создана.Я переместил таблицу создания в верхнюю часть хранимой процедуры, перед тем как создать курсор, я добавил оператор: IF OBJECT_ID ('tempdb .. # TempHitRatioTable') не является пустой таблицей DROPдобавили оператор удаления таблицы в конец процедуры, и все хорошо.Я могу запустить его столько раз, сколько захочу, и вернуть все свои результаты, а не только одну запись.Глупый я: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...