Не удается удалить временную таблицу на сервере sql после оператора С - PullRequest
0 голосов
/ 17 февраля 2012

Я создаю временную таблицу.Затем я запускаю оператор With.Я помещаю результаты в временную таблицу, а затем, после того как использую данные, я не могу удалить их, потому что появляется эта ошибка: «В базе данных уже есть объект с именем« #ArmadoPlantilla »."

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Убедитесь, что вы бросили временную таблицу после того, как с ней покончено.Похоже, вы создали свою временную таблицу, использовали ее, а затем оставили сохраненный процесс (или любой другой), не удаляя его.Обычно я использую этот метод (хотя @ Giscard's может работать):

CREATE TABLE #ArmandoPlantilla(
whatever int,
whateverAgain char(30) )

--sql inserting records and doign stuff with the temp table

drop table #ArmandoPlantilla  -- **HERE** Are you missing this?

Также ... опубликуйте свой долбанный код.Вы пытаетесь сделать это для нас тяжело?

0 голосов
/ 17 февраля 2012

Пожалуйста, оставьте свой код. Указанное вами сообщение об ошибке указывает на то, что вы пытаетесь создать таблицу более одного раза. Используете ли вы select ... into #ArmandoPlantilla... для вставки во временную таблицу после того, как таблица уже создана?

Вот пример того, как вы можете гарантировать, что ваша временная таблица будет удалена и воссоздана в начале вашего скрипта. Вы должны иметь возможность изменить, чтобы создать, только если временная таблица еще не существует:

if object_id('tempdb..#ArmandoPlantilla') is not null begin drop table #ArmandoPlantilla end
go
create table #ArmandoPlantilla (id int not null)
go
with f as (
    select 1 as [id]
    union select 2
)
insert #ArmandoPlantilla
    select * from f
go
select * from #ArmandoPlantilla
...