[SQL Server] SELECT INTO 구문 사용시 복사되지 않는 것
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를 제외한 다른 제약조건은 복사되지 않는다.