BLOG ARTICLE 트리거 | 1 ARTICLE FOUND

  1. 2010.01.08 [MSSQL] 테이블 복사하기 + 인덱스 + 제약조건 + 트리거 (2)



프로그래밍/DB 2010. 1. 8. 17:50


테이블 복사가 필요한 경우가 있다.

데이터 복사만 필요한 경우라면 쉽게 해결 되지만,

테이블의 제약조건등과 요소가 필요한 경우에는 여러 가지

고려해야 하는 것들이 있다.

 

그럼 테이블 복사를 해보도록 하겠다.

 

1.     테이블을 복사하는 가장 단순한 방법

SELECT  * INTO  TmpTable

FROM     OriTable

 

2.     테이블 생성 후, 데이터 + 제약조건 복사

CREATE TABLE TmpTable (

  ID INT NOT NULL PRIMARY KEY,

  Name VARCHAR(40) NOT NULL

)

 

SELECT  * INTO  TmpTable

FROM     OriTable


3.     테이블 생성 후, 데이터 + 제약조건 + IDENTITY 복사

 ‘*’를 사용할 수 없고 명시적으로 Column명을 선언해 줘야 한다.

 

CREATE TABLE TmpTable (

  ID INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,

  Name VARCHAR(40) NOT NULL

)

SET IDENTITY_INSERT TmpTable ON

 

INSERT  INTO TmpTable ( ID,  Name )

SELECT  ( ID,  Name )

FROM    OriTable


4. 테이블 + 제약조건 + 인덱스 + 트리거 복사 ( SSMS 사용 : SQL Server Management Studio )

※ 스크립트 생성 의도에 맞게 옵션을 선택하고 실행하면 되지만,
스크립트가 생성 하려는 테이블 + 제약조건 + 인덱스 + 트리거가 존재하는 경우 충돌이 일어날 수 있다.
[ 중복확인 Tip ] => 아래 확인



1. 서버의 테이터베이스 선택 > 작업 > 스크립트 생성

2. 생성한 스크립트 실행




[ 중복 확인 팁 ]

SP_DEPENDS [테이블명]          -- 테이블종속성확인

SP_HELPCONSTRAINT [테이블명]   -- 테이블제약조건확인

SP_HELPINDEX [테이블명]         -- 테이블인덱스확인

 

/* 테이블을 사용하는 프로시져 검색*/

SELECT  *

FROM    sys.procedures

WHERE   OBJECT_DEFINITION(OBJECT_ID) LIKE '%[테이블명]%'

 

/*  테이블을 사용하는 트리거 검색*/

SELECT  *

FROM    sys.triggers

WHERE   OBJECT_DEFINITION(OBJECT_ID) LIKE '%[테이블명]%'

YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST
  1. ㅇㅅㅇ 2013.02.22 13:36  댓글주소  수정/삭제  댓글쓰기

    잘 보고 가요~ 덕분에 세팅 잘 했네요

  2. 오즈마스터™ 2020.01.23 14:38 신고  댓글주소  수정/삭제  댓글쓰기

    2.번항목이 좀 잘못된듯 싶어서요.

    테이블 생성후 select * into ...... 는 안되지 않나요?
    이미 테이블이 존재하기 때문에