DATABASE/Oracle

[오라클] INSERT INTO ~ SELECT

1125521101 2014. 7. 4. 17:43

Oracle
  - 테이블에 있는 컬럼을 명시적으로 지정하지 않아도 가능하다.
  
  - 예제
    INSERT INTO emp_log 
    SELECT * FROM emp WHERE empno = 7900
  
  
 MSSQL
  - 테이블에 있는 컬럼을 명시적으로 지정해야 한다.
  - 자동증가 컬럼이 지정되어 있는 경우 SET IDENTITY_INSERT  [dbo].[table_name] ON 구문 사용

  
  - 예제
    INSERT INTO emp_log 
               (empno, ename, job, mgr, hiredate, sal, comm, deptno)
    SELECT  empno, ename, job, mgr, hiredate, sal, comm, deptno
    FROM emp
    WHERE empno = 7900
    
  - 예제 : 테이블에 자동증가 컬럼이 지정되어 있는 경우    
    SET IDENTITY_INSERT  [dbo].[CLT_INSPECT_LOG_MPEG_HISTORY] ON 
    
    INSERT INTO emp_log 
               (empno, ename, job, mgr, hiredate, sal, comm, deptno)
    SELECT  empno, ename, job, mgr, hiredate, sal, comm, deptno
    FROM emp
    WHERE empno = 7900


출처 : http://www.gurubee.net/article/13713