次のコードがあります。リサイクル時のテーブル名
If OBJECT_ID('tempdb.dbo.#tempTable', 'U') is not null
drop table #tempTable;
select 'bacon' into #tempTable
select * from #tempTable
If OBJECT_ID('tempdb.dbo.#tempTable', 'U') is not null
drop table #tempTable;
select 'sandwich' into #tempTable
select * from #tempTable
- それがselect into文でそれを読み込む/作成
- が存在する場合は、一時テーブルをドロップする声明
- に選択して、それを移入/作成
- が存在する場合は、一時テーブルをドロップ
これは私が書いたコードを読む方法ですが、SSMSはエラーメッセージが表示されるために違った方法で読むと思います。
メッセージ2714、レベル16、状態1、行11 という名前のオブジェクトが既にデータベースにあります。
If Object_IDの部分がコードの先頭に実行される可能性があります。テーブルは2番目のドロップテーブルステートメントでドロップされません。もちろん、別の一時表を使用することもできますが、この例が機能しない理由を理解したいと思います。
各文の後に、または少なくとも2番目の 'DROP TABLE'の後にキーワードGOを追加してください。 – BJones
@bjonesは私が必要としたものです。それを答えとして書くと、正しいとマークします。ありがとうございました! – Observer