Невозможно удалить временную таблицу на сервере sql после оператора С
Я создаю временную таблицу. Затем я запускаю оператор With. Я помещаю результаты в временную таблицу, а затем, после того, как использую данные, я не могу удалить их, поскольку появляется эта ошибка: "В базе данных уже есть объект с именем" #ArmadoPlantilla "".
Что я делаю неправильно?
2 ответа
Убедитесь, что вы уронили временную таблицу после того, как с ней покончено. Похоже, вы создали свою временную таблицу, использовали ее, а затем оставили сохраненный процесс (или что-то еще), не удаляя его. Я обычно использую этот метод (хотя @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?
Также... опубликуйте свой долбанный код. Вы пытаетесь сделать это трудно для нас?
Пожалуйста, оставьте свой код. Указанное вами сообщение об ошибке указывает на то, что вы пытаетесь создать таблицу более одного раза. Ты используешь 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