본문 바로가기

Database/MSSQL

MSSQL 테이블 복사하는 방법

MSSQL 테이블 복사하는 방법

MSSQL을 사용하다 보면 기존 테이블에서 작업을 하는 것 보다는 새로운 테이블을 만들고 거기에 데이터를 넣어서 작업해야 하는 경우가 있다.

 


이럴 때 사용할 수 있는 구문이 SELECT INTO와 INSERT INTO 이다.

 

SELECT INTO는 현재 있는 테이블에 있는 데이터 일부나 전체를 가지고 새로운 테이블로 만들 때 사용한다.

하지만 SELECT INTO로 기존에 있던 테이블에는 INSERT 할 수 없다.

기존에 있는 테이블에 데이터를 추가하는 경우에는 INSERT INTO를 사용하면 된다.

 

오늘은 MSSQL에서 테이블의 칼럼 구조와 데이터 복사하는 여러 가지 방법에 대해 알아 보자.

 

1. 테이블의 생성과 동시에 데이터까지 모두 복사하는 방법

 

SELECT * INTO [생성할 테이블명 ] FROM [원본 테이블명]

기본적으로 테이블과 동시에 데이터까지 복사하는 방법이다.  

 

2. 테이블을 생성할 때 원하는 컬럼만 복사하는 방법

 

SELECT [원하는 컬럼명] INTO [생성할 테이블명 ] FROM [원본 테이블명]

내가 원하는 컬럼만 복사하여 테이블을 만들때 간단하게 해결이 가능하다. 

 

3. 테이블을 생성할 때 테이블 구조만 복사하는 방법

 

SELECT * INTO [생성할 테이블명 ] FROM [원본 테이블명] WHERE  1=2

테이블을 복사할 때 테이블에서 테이터는 없이 테이블 구조만 복사할 때는 'WHERE  1=2'와 같은 쿼리를 실해시키면 테이블의 구조만 복사할 수 있다.

 

4. 테이블은 이미 있고 데이터만 복사하는 방법

 

INSERT INTO [ 데이터를 넣을 테이블명 ] SELECT * FROM [원본 테이블명]

테이블은 이미 있고 그 테이블에 데이터만 복사하고 싶을 경우에는 위와 같은 방법으로 데이터를 넣을 수 있다. 

 

5. 이를 응용해보면 아주 유용하게 사용할 수 있다.

 

INSET INTO [데이터를 넣을 테이블명](컬럼1, 컬럼2) SELECT 복사할 컬럼1, 복사할 컬럼2 FROM [원본 테이블명] GROUP BY 컬럼1

위와 같이 응용해모면 이미 있는 테이블에 원하는 컴럼만 정렬하여 데이터을 넣을 수도 있다. 

 

 

* 주의사항 : 복사 쿼리로 테이블의 구조와 레코드는 복사할 수 있으나 Primary Key, Foreign Key, Default, Index등은 복사를 할 수 없다.