SELECT INTO 구문은 새 테이블을 만든 후 쿼리의 결과 행을 새로 만든 테이블에 삽입한다.
주로 테이블의 데이터를 수정, 삭제할 경우 백업의 용도로 사용한다.
테이블을 복사할 때 제약조건, NULL, IDENTITY 등도 같이 복사되는지 확인해보자.
USE TEMPDB GO
CREATE TABLE TEST_1 ( IDX INT IDENTITY , NAME CHAR(6) NOT NULL , AGE TINYINT NOT NULL , GENDER TINYINT DEFAULT 1 -- 1:남, 2:여 , CONSTRAINT PK_TEST PRIMARY KEY(IDX) ) GO
INSERT INTO TEST_1 VALUES ('박보영', 15, 2) , ('유인나', 20, 2) , ('신보라', 25, DEFAULT) GO
SELECT * FROM TEST_1 GO
-- 제약조건, NULL, IDENTITY 확인 SP_HELP TEST_1 GO
-- SELECT INTO 구문을 이용하여 테이블 복사 SELECT * INTO TEST_COPY FROM TEST_1 GO SELECT * FROM TEST_COPY GO
-- 제약조건, NULL, IDENTITY의 복사 여부 확인 SP_HELP TEST_COPY GO |
테이블의 데이터는 그대로 복사되었지만 PRIMARY KEY와 DEFAULT 제약조건은 복사되지 않았음을
확인할 수 잇다.
INSERT INTO 구문 사용시 NULL, IDENTITY를 제외한 다른 제약조건은 복사되지 않는다.
'DBMS > SQL Server' 카테고리의 다른 글
[SQL Server] 가장 조각이 많이 난 인덱스 TOP 10 (0) | 2013.04.26 |
---|---|
[SQL Server] 별칭(Alias)을 지정하는 여러가지 방법 (0) | 2013.04.26 |
[SQL Server] 한 테이블에 생성할 수 있는 인덱스의 최대 개수 (0) | 2013.04.15 |
[SQL Server] GO 명령의 깜찍한 기능 (0) | 2013.04.09 |
[SQL Server] DELETE, TRUNCATE의 IDENTITY 초기화 여부 (0) | 2013.04.08 |