1. ホーム
  2. sql

[解決済み] テンポラリテーブルが存在する場合、それを削除する

2022-11-30 17:09:02

質問

SQLで2つのテーブルを作成する2行のコードがありますが、次のようなことをする必要があります。

IF TABLE EXISTS 
    DROP IT AND CREATE IT AGAIN
ELSE
    CREATE IT

私の行は以下の通りです。

CREATE TABLE ##CLIENTS_KEYWORD(client_id int)     
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)   

この概念をプロシージャの2つのテーブルに適用するにはどうすればよいでしょうか?

どのように解決するのですか?

SQL Server 2016 からは、単に

 DROP TABLE IF EXISTS ##CLIENTS_KEYWORD

以前のバージョンでは

IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD', 'U') IS NOT NULL
/*Then it exists*/
DROP TABLE ##CLIENTS_KEYWORD
CREATE TABLE ##CLIENTS_KEYWORD
(
   client_id INT
)

また、削除して再作成するのではなく、代わりにテーブルを切り詰めることを検討することもできます。

IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD', 'U') IS NOT NULL
  TRUNCATE TABLE ##CLIENTS_KEYWORD
ELSE
  CREATE TABLE ##CLIENTS_KEYWORD
  (
     client_id INT
  )