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를 작성할 수도 있습니다.