중복 테이블 삭제 후에 다시 테이블 생성(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 하기
https://learn.microsoft.com/ko-kr/sql/t-sql/statements/drop-table-transact-sql?view=sql-server-ver16
https://learn.microsoft.com/ko-kr/sql/t-sql/functions/object-id-transact-sql?view=sql-server-ver16
'DataBase > MS-SQL' 카테고리의 다른 글
[MS-SQL] 서브 쿼리 검색 조건 'WHERE EXISTS' 절의 구조와 활용 (0) | 2023.01.12 |
---|---|
[MS-SQL] 특정 컬럼에서 소수점이 존재하는 레코드 조회하기 (0) | 2023.01.05 |
[MS-SQL] Create Table 생략하고 임시 테이블 생성 (Select Into) (0) | 2023.01.04 |
[MS-SQL] 그룹별 ROW(행) 문자열 결과 합치기 (STUFF, FOR XML PATH 활용) (0) | 2023.01.03 |
[MS-SQL] 다중 레코드 INSERT 하기 (0) | 2022.12.24 |
[MS-SQL] DB 로그삭제(파일축소) - Version 4 일괄적용 (0) | 2022.12.23 |
[MS-SQL] DB 로그삭제(파일축소) - Version 3 단일적용(간단2) (0) | 2022.12.22 |
[MS-SQL] 물리적인 테이블 크기 확인하기 (0) | 2022.12.18 |
댓글