위즈군의 라이프로그
Reboot... Search /

[MSSQL] 테이블 간 데이터 복사

2009.03.27 09:56
개발을 하다 보면 한 테이블에 데이터가 너무 많아서 테이블을 분리하거나 또는 설계상 동일 구조의 다른 테이블로 이동해야 하는 상황이 발생합니다.
대부분 어플리케이션 레벨에서 구현이 가능하지만 어플리케이션을 다시 컴파일 하는 불편함이 발생할 수도 있고, 거기에 따른 버그도 발생할 수 있습니다. 그래서 가능하면 어플리케이션 수정을 하지 않고, 데이터 레이어에서 처리를 할 수 있는 방법이 좋습니다.

여기에서는 SQL 쿼리를 사용해 동일한 구조의 테이블로 간단하게 데이터를 복사하는 방법을 소개 합니다.
코드
INSERT INTO [대상테이블명]([컬럼1], [컬럼2], [컬럼3])
SELECT [컬럼1], [컬럼2], [컬럼3] FROM [원본테이블명]

정말 간단한 기본쿼리입니다.(하지만 실제 사용할 때는 생각이 잘 나지 않는다는..) [원본테이블]에서 SELECT 한 데이터를 [대상테이블]로 바로 Insert 하는 것입니다. SELECT 할 때 조건을 주면 조건에 해당하는 데이터만 복사가 됩니다.
이동의 경우 복사를 하고 원본을 삭제하는 형태로 응용하면 됩니다.
신고
2009.03.27 11:55 신고 E / R
INSERT INTO ... SELECT 보다는..
SELECT .. INTO New_Table FROM 이 효율이 더 좋습니다. (물론 기존에 테이블을 삭제해야하지요)
위즈 2009.03.27 13:33 신고 E
새로운 테이블로 옮길때는 New_Table From 으로 사용해야겠군요.
좋은정보 감사합니다.^^
KJ 2009.12.24 15:59 신고 E / R
INSERT INTO... SELECT나
SELECT... INTO New_Table FROM

어느 것이나 PK나 FK 정보는 가져오지 못합니다.
말 그대로 데이터만 가져옵니다.

데이터 Volume이 작은 경우는 작업 후에 INDEX 생성을 해주는 것이 낫지만,
데이터 Volume이 큰 경우는 작업 후에 하나 전에 하나 사실 거기서 거깁니다..:-(
Name : Password : Blog : ( )

위즈군의 라이프로그

Category

전체 (569)
개발 (0)
정보 (0)
일상 (0)
정리중 (569)
Total:2,094,883
Today:448 / Yesterday:200
Daum 코드
Powered by Tistory / Skin by 위즈 / Copyright Click Here 라이센스정책 rss 2.0