반응형
INSERT
테이블에 데이터 삽입한다.
INSERT INTO 테이블명(칼럼1,칼럼2,칼럼3,...) VALUES(데이터1,데이터2,데이터3,...)
INSERT INTO table_ggmouse(name, age) VALUES('bella', 30)
INSERT INTO table_ggmouse(name, age) VALUES('zzong', 25)
INSERT INTO table_ggmouse(name, age) VALUES('sohee', 28)
SELECT * FROM table_ggmouse
INSERT INTO SELECT
테이블의 데이터를 대상 테이블에 복사한다.
위에서 설명한 단순 INSERT문은 데이터를 한줄씩 넣는 방식이다.
만일 다른 테이블의 있는 다량의 데이터를 가져와서 한 번에 삽입하고 싶다면, INSER INTO SELECT문을 이용해보자.
INSERT INTO 대상테이블명 (컬럼명)
SELECT 컬럼명 FROM 원본테이블명
WHERE 조건
INSERT INTO table_age (age)
SELECT age FROM table_ggmouse
SELECT * FROM table_age
다른 서버의 DB로 데이터를 복사
INSERT INTO [서버주소].대상테이블명 (컬럼명)
SELECT 컬럼명 FROM 원본테이블명
WHERE 조건
여기서 주의할점은 다른 서버의 DB로 데이터를 복사할 때, 트랜잭션은 걸 수 없다.
BEGIN TRAN
INSERT INTO [서버주소].대상테이블명 (컬럼명)
SELECT 컬럼명
FROM 원본테이블명
WHERE 조건
COMMIT TRAN
메시지7391, 수준16, 상태2, 줄2
연결된서버"xxx.xxx.xxx.xx"의OLE DB 공급자"SQLNCLI10"이(가) 분산트랜잭션을시작할수없으므로요청한작업을수행할수없습니다.
SELECT INTO
데이터를 포함한 테이블을 복사한다.
즉, 동일한 테이블이 생성된다.
SELECT 컬럼명 INTO 생성할테이블명
FROM 원본테이블명
WHERE 조건
SELECT * INTO ggmouse
FROM table_ggmouse
SELECT * FROM ggmouse
TIP
데이터를 제외한 테이블의 구조만 동일한 테이블을 만들고 싶다면 조건을 추가하여 조회되는 데이터가 없도록하면 된다. 예) WHERE 1=2
반응형
'프로그래밍 > MSSQL' 카테고리의 다른 글
[MSSQL] GROUP BY COUNT 그룹으로 묶어 집계하기 (2) | 2019.11.05 |
---|---|
[MSSQL] STUFF, REPLACE 문자열 치환 (0) | 2019.11.04 |
[MSSQL] SQL Server 2017 Developer 설치하기 (무료) (0) | 2019.10.26 |
[MSSQL] DATEDIFF, DATEADD 날짜 비교, 날짜 계산 (0) | 2019.10.25 |
[MSSQL] date format 날짜 형식 (CONVERT DATETIME) (0) | 2019.10.25 |