본문 바로가기
DataBase/MS-SQL

[MS-SQL] 중복 테이블 삭제 후에 다시 테이블 생성(CREATE)하기

by 너울림 2023. 1. 2.

중복 테이블 삭제 후에 다시 테이블 생성(CREATE)하기

 

중복 테이블 삭제 후에 다시 테이블 생성(CREATE)하기

 


포스팅 개요


MS-SQL은 이미 SSMS(SQL Server Management Studio)라는 강력한 툴이 존재하여 비교적 간단하게 테이블 생성이 가능합니다. 하지만 관계형 데이터베이스(RDBMS)를 사용하려면 반드시 DDL(Data Definition Language : 데이터 정의 언어)을 숙지하여야 합니다. 오늘 포스팅에서는 DDL의 생성(CREATE), 수정(ALTER), 삭제(DROP) 중 CREATE 문의 작업 전에 중복 테이블을 발견하고 삭제하는 방법을 예제로 작성해 보겠습니다. 

  • 아래 예제를 그대로 적용하시면 중복 테이블을 삭제하고 작업이 진행되니 조심하셔야 됩니다.
  • IF와 OBJECT_ID([테이블명]) 조합을 이용한 테이블 검색은 임시 테이블 중복 검사에도 사용됩니다.
  • 예제 쿼리를 조금 수정하시면 중복 테이블이 존재할 경우에 아예 테이블 생성을 진행 못하도록 수정할 수 있습니다.


예제 쿼리


테이블 생성 시 중복되는 테이블을 삭제하고 생성하는 방식입니다. INSERT 문은 지난 포스팅에서 사용한 대용량 INSERT 방식을 사용하였고 차후에는 다른 방식도 포스팅할 예정입니다.

-- TEST 테이블을 중복 생성을 막기 위한 테이블 유무 검사
IF OBJECT_ID ('[dbo].[Test_Table]') IS NOT NULL DROP TABLE [dbo].[Test_Table]

-- TEST 테이블 생성
CREATE TABLE Test_Table(
 [ID] [INT] IDENTITY (1, 1) NOT NULL, --Key = 자동증가
 [In_Date] [VARCHAR](10) NULL, -- 입고일자
 [Employee] [VARCHAR](50) NULL, -- 사원
 [Stock] [VARCHAR](50) NULL, -- 입고품
 [Qty] [INT] NULL -- 수량
 PRIMARY KEY ([ID])
)

-- TEST 테이블에 INSERT
INSERT INTO Test_Table([In_Date],[Employee],[Stock],[Qty]) VALUES 
('2022-12-01', '너울림', '사과', 100),
('2022-12-01', '너울림', '배', 120),
('2022-12-02', 'ullim', '바나나', 50),
('2022-12-07', '너울림', '바나나', 70),
('2022-12-07', 'ullim', '사과', 230),
('2022-12-08', 'ullim', '사과', 30),
('2022-12-09', '너울림', '귤', 150),
('2022-12-15', '너울림', '귤', 150),
('2022-12-15', 'ullim', '바나나', 150)

-- TEST 조회
SELECT * FROM Test_Table

실행 결과


여러 번 실행하여도 오류 없이 정상적으로 테이블이 생성됩니다.

테스트용 테이블 생성 모습


참고 링크

 

2022.12.24 - [DataBase/MS-SQL] - [MS-SQL] 다중 레코드 INSERT 하기

 

[MS-SQL] 다중 레코드 INSERT 하기

다중 레코드 INSERT 하기 상황에 맞는 Insert문 구사가 중요하다 상세 내용 저는 주로 레코드를 추가할 때 다음 3가지 방식을 가장 많이 사용합니다 단일 레코드 추가 방식 예) INSERT INTO Table_name (컬

ullim.net

https://learn.microsoft.com/ko-kr/sql/t-sql/statements/create-table-transact-sql?view=sql-server-ver16

 

CREATE TABLE(Transact-SQL) - SQL Server

CREATE TABLE(Transact-SQL)

learn.microsoft.com

https://learn.microsoft.com/ko-kr/sql/t-sql/statements/drop-table-transact-sql?view=sql-server-ver16 

 

DROP TABLE(Transact-SQL) - SQL Server

DROP TABLE(Transact-SQL)

learn.microsoft.com

https://learn.microsoft.com/ko-kr/sql/t-sql/functions/object-id-transact-sql?view=sql-server-ver16 

 

OBJECT_ID(Transact-SQL) - SQL Server

OBJECT_ID(Transact-SQL)

learn.microsoft.com

댓글