카테고리 없음

MSSQL - SELECT INTO / INSERT INTO

OK_SON 2020. 6. 19. 15:00

SELECT INTO (테이블 및 데이터 복사)

INSERT INTO SELECT (데이터 복사)

 

 

테이블 구조 및 데이터 복사

 

원본테이블과 동일 구조의 테이블을 생성 후 데이터 복사

 

1

2

3

SELECT 컬럼명 INTO 대상테이블명

FROM 원본테이블명

WHERE 조건

 

 

테이블 구조 복사

원본테이블과 동일 구조의 테이블만 생성

1

2

3

SELECT 컬럼명 INTO 대상테이블명

FROM 원본테이블명

WHERE 1=2

 

 

데이터 복사

테이블의 내용을 대상테이블에 복사

1

2

3

INSERT INTO 대상테이블명 (컬럼명)

SELECT 컬럼명 FROM 원본테이블명

WHERE 조건

 

다른 서버DB로 데이터 복사 

1

2

3

INSERT INTO [서버주소].대상테이블명 (컬럼명)

SELECT 컬럼명 FROM 원본테이블명

WHERE 조건

 

[주의]

다른 서버DB로 테이블 및 데이터 복사할때 트랜잭션은 걸 수 없다.

만일 아래와 같은 SQL을 수행한다면!

1

2

3

4

5

6

7

BEGIN TRAN

INSERT INTO [서버주소].대상테이블명 (컬럼명)

SELECT 컬럼명 FROM 원본테이블명

WHERE 조건

 

--COMMIT TRAN

--ROLLBACK TRAN

 

다음과 같은 오류 메세지를 보게 될 것이다.

 

연결된서버"xxx.xxx.xxx.xxx"의OLE DB 공급자"SQLNCLI10"이(가) 메시지"트랜잭션관리자가원격/네트워크트랜잭션에대한지원을할수없습니다."을(를) 반환했습니다.

메시지7391, 수준16, 상태2, 줄2

연결된서버"xxx.xxx.xxx.xx"의OLE DB 공급자"SQLNCLI10"이(가) 분산트랜잭션을시작할수없으므로요청한작업을수행할수없습니다.

 

[출처] [MSSQL] SELECT INTO [테이블 복사], INSERT INTO SELECT [데이터 복사]|작성자 꽁쥐