-3

一時テーブルを作成します。次に、Withステートメントを実行します。結果を一時テーブルに入れましたが、データを使用した後、「データベースに「#ArmadoPlantilla」という名前のオブジェクトがすでに存在します」というエラーが表示されるため、データを削除できません。

私は何が間違っているのですか?

4

2 に答える 2

1

使い終わったら、必ず一時テーブルを削除してください。一時テーブルを作成して使用し、ストアドプロシージャ(またはその他)を削除せずに残したようです。私は通常この方法を使用します(@Giscardは機能するかもしれませんが):

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?

また...おかしなコードを投稿してください。あなたは私たちのためにこれを難しくしようとしていますか?

于 2012-02-18T00:11:27.647 に答える
0

コードを投稿してください。あなたが言及したエラーメッセージは、テーブルを複数回作成しようとしていることを示しています。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
于 2012-02-17T17:37:03.480 に答える