DB/MSSQL

MSSQL 테이블 복사하기

devmean 2026. 3. 24. 16:59

전체 테이블 복사 (SELECT INTO)

SELECT *
INTO NewTable
FROM OldTable;
  • PK, FK, INDEX, TRIGGER 복사되지 않음
  • IDENTITY 속성은 유지되지만 제약조건은 제외됨
  • 기존 테이블이 있으면 오류 발생

조건부 데이터만 복사

SELECT *
INTO NewUsers
FROM Users
WHERE Age >= 20;
  • 조건에 따라 데이터 누락 가능
  • 인덱스 및 제약조건은 생성되지 않음

구조만 복사 (데이터 제외)

SELECT *
INTO EmptyTable
FROM Users
WHERE 1 = 0;
  • 컬럼 구조만 생성됨
  • 모든 제약조건 및 인덱스 제외

기존 테이블에 데이터 추가

INSERT INTO NewTable
SELECT *
FROM OldTable;
  • 컬럼 순서 및 데이터 타입 반드시 일치해야 함
  • PK/UK 존재 시 중복 데이터 오류 발생 가능

특정 컬럼만 복사

SELECT UserID, UserName
INTO UserNames
FROM Users;
  • 선택한 컬럼만 생성됨
  • NOT NULL, DEFAULT 제약이 유지되지 않을 수 있음

다른 DB / 스키마로 복사

SELECT *
INTO TargetDB.dbo.NewTable
FROM SourceDB.dbo.OldTable;
  • 대상 DB에 CREATE TABLE 권한 필요
  • 원본 테이블에 SELECT 권한 필요
  • DB 간 Collation 차이로 오류 발생 가능
  • IDENTITY, DEFAULT, 제약조건 일부 누락 가능
  • 네트워크/서버 간 복사는 Linked Server 필요
반응형

'DB > MSSQL' 카테고리의 다른 글

MSSQL 문자열 자르기  (0) 2026.03.25
MSSQL 날짜/시간 형변환 한눈에 정리  (0) 2026.03.24
MSSQL 테이블 목록 조회  (0) 2025.03.27
MSSQL 프로시저 내용 문자열 검색 조회  (0) 2025.03.27