「という名前のオブジェクトが既にあります」原因エラー 'データベースに' #TMPGUARDIAN 'という名前のオブジェクトが既に存在します。なぜこのエラーが発生しているのですか?一時テーブルには、私は、私はこのようになりますいくつかのコードをSQL Serverで次の問題を持っているエラー
答えて
これを削除してから作成してから、SELECT INTO
を使用して再度作成しようとしています。 MS SQL Serverので
DROP TABLE #TMPGUARDIAN
CREATE TABLE #TMPGUARDIAN(
LAST_NAME NVARCHAR(30),
FRST_NAME NVARCHAR(30))
INSERT INTO #TMPGUARDIAN
SELECT LAST_NAME,FRST_NAME
FROM TBL_PEOPLE
あなたはあなたがこの
CREATE TABLE #TMPGUARDIAN(
LAST_NAME NVARCHAR(30),
FRST_NAME NVARCHAR(30))
INSERT INTO #TMPGUARDIAN(FRST_NAME,LAST_NAME)
SELECT LAST_NAME,FRST_NAME FROM TBL_PEOPLE
のようにクエリを変更する必要がありますSELECT INTO
を使用してCREATE TABLE
声明ずにテーブルを作成することができます - 最後のセッションを行いますに変更すべての一時テーブルをクリアします。常に最後に落ちる。場合によっては、削除しようとしている間にテーブルが存在しない場合にエラーが発生することがあります。
DROP TABLE #TMPGUARDIAN
あなたが(ないのインサートと一緒に)いくつかの工程の後に充填することができる新しい列を追加することによって、一時テーブルを変更する場合は、将来的には、その後に挿入を使用しているため、場合 に挿入使用することは避けてください。そのときは、同じ方法で再加工して設計する必要があります。これは変数のようになりますので、ドロップ文の
使用テーブル変数http://odetocode.com/articles/365.aspx
declare @userData TABLE(
LAST_NAME NVARCHAR(30),
FRST_NAME NVARCHAR(30)
)
メリット 必要はありません。スコープは実行直後に終了します。
私は通常、これらの行をストアドプロシージャの先頭に配置し、最後に配置します。
#tempテーブルの「存在」チェックです。あなたは(同じワークスペース/タブで)同じ.sqlファイルにINSERTクエリを書くようなので、あなたはあなたのクエリを作成INSERTクエリを実行し、一度愚かな間違いを犯すことがいくつかの時間が真上書かれており、すでに実行された
IF OBJECT_ID('tempdb..#MyCoolTempTable') IS NOT NULL
begin
drop table #MyCoolTempTable
end
それは、挿入クエリと共に実行を再び開始する。
これは、オブジェクト名(テーブル名)がすでに存在している理由です。なぜなら、2回目に実行されるためです。
したがって、実行しようとしている挿入またはドロップまたは任意のクエリを書き込むには、別のタブに行きます。
またはOPがテーブルを議論している間
CREATE -- …
-- Insert query
INSERT INTO -- …
のように同じワークスペース内のすべてのクエリを、先行する他の利用コメント行、問題のかのオブジェクトがストアドプロシージャである、あなたが "を使用していることを確認しますあなたがコードを貼り付けた場合よ、
ALTER PROCEDURE
:」機能を変化させます「作成」を「変更」に置き換える必要があるかもしれません...これはちょうど私に起こり、イライラしています。だから私はこれが他人に起こることを願っています。
- 1. 私はこのようなテーブル持っているSQL Serverの
- 2. 問題のは、私はいくつかのテーブルを持っているSQLインデックス
- 3. エラー - 私は次のような問題持っているリンク
- 4. SQL Serverクエリ - 私は私はこのようなテーブルを持っている
- 5. は、私は次のような問題を持っている
- 6. 私はこのような一時テーブルにCSVをロードしていますSQL Serverの一時テーブルのカラム型
- 7. は、私は次のスキーマを持つテーブルを持っているSQL Serverの
- 8. 次のように私はテーブルを持っているSQL
- 9. あいまい私は次のような問題持って
- 10. は、私はこのようなテーブルを持っているSQL
- 11. は、私はこのようなテーブルを持っているSQL
- 12. どのように私は次の行に私のPHPコードでこの問題を持っている
- 13. は、次のように私はいくつかのコードを持って、
- 14. 私はこのようになりますテーブルを持つSQL
- 15. 私はこのようになりますテーブルを持つSQL
- 16. 私はこのようなテーブルを持っているSQL Serverの
- 17. 制限範囲は、私はこのようになりますいくつかのコードを持っている
- 18. は、私はこのようになりますいくつかのコードを持っているイベント
- 19. 私は、次のスキーマを持つテーブル持っているのSQL Server 2016
- 20. 私は次のような問題持っているテンプレートパラメータ
- 21. スモールトーク - 私は次のような問題持っているアレイ
- 22. バッファのソケットは、私はいくつかのコードを持っている問題
- 23. は、私は4つのテーブル持っているSQL Server 2008の
- 24. SQLは、CONCAT、いくつかの私がデータを持つテーブルを持っている一つの大きなテーブル
- 25. Herokuのは、私はいくつかの問題を持っている、エラー
- 26. 下記のように、私は次の表を持っているSQL Serverで
- 27. 、私は次のようなSAS/SQLでテーブルを持っているSQL
- 28. は、私はこのようなデータを持つテーブルを持っているテーブル
- 29. SQLエラー:私はこのコードの問題持っている非オブジェクト
- 30. は、私はこのようになりますテーブルを持っている1
私の場合、十分ではないようです。私が同じ2つの同じ選択を同じ "SELECT MyField INTO #TempTable"と書いているという単なる事実は、コンパイルエラーの原因になります。 2つのselect intoは同時に異なるヒットになることはありません。それにもかかわらず、2回同じ書き込みはできません。SELECT INTO –
Select-Intoを使用しないでください。それは「ショートカット」です。 #tempTableを作成し、 "Insert into #MyTemp Select Col1 Col2 dbo.MyTable"構文を使用します。 – granadaCoder