테이블을 그대로 다른 이름의 테이블로 복사하는 방법 4가지를 예제를 통해 알아보겠습니다.
A테이블에서 B테이블로 테이블의 스키마, 데이터 등 여러가지 방법으로 복사하는 방법이 존재하므로 귀찮게 create 문으로 새 테이블을 생성해서 데이터를 복사하는 것은 매우 비효율적입니다.
[테이블을 복사하는 4가지 Case]
1) 새 테이블 생성 + 데이터 복사
2) 테이블만 복사 + 데이터 제외
3) 기존 테이블에 + 전체 데이터 복사
4) 기존 테이블에 + 특정 데이터 복사
|
새 테이블 생성 + 데이터 복사
새 테이블을 생성하고 동시에 원본 테이블로부터 모든 데이터를 새 테이블에 복사해 줍니다.
구문)
SELECT *
INTO 복사할 새 TABLE명
FROM 원본 TABLE명
|
예제)
SELECT *
INTO CS_CODE_COPY
FROM CS_CODE
|
테이블만 복사 + 데이터 제외
새 테이블을 생성하지만 데이터는 복사하지 않습니다.
WHERE 조건절을 추가하여 1=2 라는 조건을 걸었으므로
조건에 부합하는 데이터가 없어서 복사할 데이터가 없게 됩니다.
구문)
SELECT *
INTO 복사할 새 TABLE명
FROM 원본 테이블명
WHERE 1 = 2
|
예제)
SELECT *
INTO CS_CODE_COPY
FROM CS_CODE
WHERE 1 = 2
|
3) 기존 테이블에 + 전체 데이터 복사
새 테이블을 생성하지 않고 기존의 스키마가 동일한 테이블에
데이터만 복사해 줍니다.
기존 테이블이 존재하지 않을 경우 에러가 발생합니다.
구문)
INSERT
INTO 복사할 기존 TABLE명
SELECT *
FROM 원본 테이블명
또는 ('can only be specified when a column list is used and IDENTITY_INSERT is ON' 에러 발생 시)
INSERT (col1, col2, col3, ......)
INTO 복사할 기존 TABLE명
SELECT *
FROM 원본 테이블명
|
예제 1)
INSERT
INTO CS_CODE_COPY
SELECT *
FROM CS_CODE
|
예제 2)
예제 1의 방법을 사용했는데
'can only be specified when a column list is used and IDENTITY_INSERT is ON' 에러 발생 시에는 아래와 같이 컬럼명을 명시적으로 써 주면 됩니다.
INSERT
INTO CS_CODE_COPY (NO,GROUPCODE,CODE,NAME,CONDITION1,CONDITION2,CONDITION3,REMARK,USEYN)
SELECT *
FROM CS_CODE
|
4) 기존 테이블에 + 특정 데이터 복사
새 테이블을 생성하지 않고 기존의 스키마가 동일한 테이블에
조건절 where를 이용하여 특정데이터만 복사해 줍니다.
기존 테이블이 존재하지 않을 경우 에러가 발생합니다.
구문)
INSERT
INTO 복사할 기존 TABLE명
SELECT *
FROM 원본 테이블명
WHERE 조건
또는 ('can only be specified when a column list is used and IDENTITY_INSERT is ON' 에러 발생 시)
INSERT (col1, col2, col3, ......)
INTO 복사할 기존 TABLE명
SELECT *
FROM 원본 테이블명
WHERE 조건
|
예제 1)
INSERT
INTO CS_CODE_COPY
SELECT *
FROM CS_CODE
WHERE GROUPCODE = 'model'
|
예제 2)
예제 1의 방법을 사용했는데
'can only be specified when a column list is used and IDENTITY_INSERT is ON' 에러 발생 시에는 아래와 같이 컬럼명을 명시적으로 써 주면 됩니다.
INSERT
INTO CS_CODE_COPY (NO,GROUPCODE,CODE,NAME,CONDITION1,CONDITION2,CONDITION3,REMARK,USEYN)
SELECT *
FROM CS_CODE
WHERE GROUPCODE = 'model'
|
🚥 테이블 복사 시 테이블 구조만 동일하게 생성되고 index는 생성되지 않습니다.
[mssql] 쿼리 결과값을 json으로 받아오기 - for json auto 그리고 json viewer 활용하기 (0) | 2022.11.18 |
---|---|
SQLD 자격증 시험과목과 일정 및 합격률 알아보기 (0) | 2022.03.24 |
MySQL 시간 날짜 관련 함수 정리 (0) | 2022.03.17 |
[mssql] SQL Server 버전별 비교 (0) | 2022.03.09 |
[자바스크립트] try catch 로 예외처리 하기 (0) | 2022.01.29 |
댓글 영역