SQL Server/SQL Server 자주보는

[MsSQL] IF EXISTS 테이블 존재 유무 확인해서 없으면 생성하기

꽁담 2019. 2. 18. 09:51

MS-SQL 에서 테이블의 존재 유무는 information_schema 의 tables 테이블에서 확인할 수 있습니다.


예를들어 dbo 스키마, mozi 테이블을 확인하는 방법입니다.

1
2
3
4
 SELECT *
    FROM INFORMATION_SCHEMA.tables WITH(NOLOCK)
    WHERE TABLE_SCHEMA = 'dbo'
       AND TABLE_NAME = 'mozi'
cs


그럼 이제 테이블의 존재 유무를 확인해서 있는경우 DROP & CREATE 하는 방법을 해보겠습니다.

1
2
3
4
5
6
7
8
9
10
IF EXISTS (
 SELECT * FROM INFORMATION_SCHEMA.tables WITH(NOLOCK) WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'mozi' )
 exec('DROP TABLE [dbo].[mozi]')
 GO
GO
 
CREATE TABLE dbo.mozi (
  C1 INT PRIMARY KEY,
  C2 VARCHAR(50),
  C3 datetime NOT NULL )
cs

혹은 IF NOT EXISTS 를 사용한 후, DROP 대신 CREATE를 작성할 수도 있습니다.