[MSSQL] INSERT INTO SELECT 사용법 (SELECT INSERT)
- 데이터베이스/MSSQL
- 2025. 12. 27.
SQL Server에서 데이터를 입력할 때 INSERT VALUES만 쓰는 경우도 많지만, 실무에서는 조회 결과를 그대로 넣거나 가공해서 넣는 INSERT INTO … SELECT … 패턴을 자주 사용한다. 기존 데이터를 기반으로 신규 행을 만들거나, 특정 조건의 데이터를 다른 테이블로 이관/백업할 때도 유용하게 사용할 수 있다.
| 목차 |
SELECT 컬럼과 INSERT 대상 컬럼이 “완전히 일치”하는 경우
INSERT INTO dbo.emp
SELECT 8000
, 'GENT'
, a.job
, a.mgr
, CONVERT(date, '2021-05-03', 23)
, a.sal
, a.comm
, a.deptno
FROM dbo.emp AS a
WHERE a.empno = 7698
![]() |
INSERT INTO... SELECT …에서 SELECT 절의 컬럼 개수/순서/데이터 타입이 대상 테이블과 완전히 동일하다면, INSERT 구문에서 컬럼을 생략할 수 있다.
테이블 컬럼이 추가되거나 순서가 바뀌어 의도치 않은 오류가 발생할 수 있으므로, 대상 테이블에 컬럼을 명시하는 것이 좋다.
SELECT 컬럼과 INSERT 대상 컬럼이 “불일치”하는 경우
INSERT INTO dbo.emp (empno, ename, job, mgr, hiredate)
SELECT 8000
, 'GENT'
, a.job
, a.mgr
, CONVERT(date, '2021-05-03', 23)
FROM dbo.emp AS a
WHERE a.empno = 7698
![]() |
SELECT 결과가 대상 테이블의 전체 컬럼과 일치하지 않거나, 일부 컬럼만 넣고 싶다면 INSERT 대상 컬럼을 반드시 지정해야 한다.
SELECT INTO 로 “테이블을 즉석 생성 + 데이터 적재”
SELECT empno, ename, job, deptno
INTO dbo.emp_manager_backup
FROM dbo.emp
WHERE job = 'MANAGER'
![]() |
SQL Server에서 자주 사용하는 기능 중 하나가 SELECT INTO 이다.
SELECT INTO는 SELECT 결과를 바탕으로 테이블을 즉석에서 생성하고, 동시에 데이터를 저장한다.
![]() |
백업 테이블에 데이터가 저장되어 있는 것을 확인할 수 있다.
[MSSQL] INSERT 문 사용법 3가지 (데이터 입력)
SQL Server에서 데이터를 입력하기 위해서는 INSERT 문을 사용한다. SQL Server 2008부터 여러 행을 입력할 수 있는 기능이 추가되었으며, SELECT 해서 INSERT 하는 방법으로도 여러 건의 데이터를 입력할 수
gent.tistory.com
[MSSQL] MERGE 문 사용법 (UPDATE와 INSERT를 한번에)
MERGE 문을 사용하면 변경할 테이블에 데이터가 존재하는지 체크하고, UPDATE, DELETE, INSERT를 한 번에 작업이 가능하다. MERGE 문을 사용하지 않을 경우 해당 조건으로 테이블을 SELECT 한 후 IF 조건을
gent.tistory.com



