SQL Serverに一時テーブルが存在するかどうかを判断する最良の方法は何ですか?

original title: "What's the best way to determine if a temporary table exists in SQL Server?"


Translate

When writing a T-SQL script that I plan on re-running, often times I use temporary tables to store temporary data. Since the temp table is created on the fly, I'd like to be able to drop that table only if it exists (before I create it).

I'll post the method that I use, but I'd like to see if there is a better way.



再実行を計画しているT-SQLスクリプトを作成するとき、一時テーブルを使用して一時データを格納することがよくあります。一時テーブルはオンザフライで作成されるので、そのタブをドロップできるようにしたい...

これは翻訳後の要約です。完全な翻訳を表示する必要がある場合は、「翻訳」アイコンをクリックしてください。


すべての答え
  • Translate
    IF Object_Id('TempDB..#TempTable') IS NOT NULL
    BEGIN
        DROP TABLE #TempTable
    END
    

  • Translate

    The OBJECT_ID function returns the internal object id for the given object name and type. 'tempdb..#t1' refers to the table #t1 in the tempdb database. 'U' is for user-defined table.

    IF OBJECT_ID('tempdb..#t1', 'U') IS NOT NULL
      DROP TABLE #t1
    
    CREATE TABLE #t1
    (
      id INT IDENTITY(1,1),
      msg VARCHAR(255)
    )
    

  • Translate
    SELECT name
    FROM sysobjects
    WHERE type = 'U' AND name = 'TempTable'