2016-09-21 3 views
0

나는임시 테이블의 열에 대한 기본 제약 조건을 복사하는 방법은 무엇입니까?

select * 
into #Product 
from (select * from SalesLT.Product) as data 

임시 테이블이 작성있어 다음 스크립트와 새 테이블에 삽입 된 모든 값을 임시 테이블을 만들려고. 이제 새 임시 테이블 (#product)에 행을 삽입하려고하는데 일부 필드와 관련하여 오류가 발생합니다.

Insert into SalesLT.Product(Name, ProductNumber, StandardCost, ListPrice, ProductCategoryID, SellStartDate) 
    values('LED Lights', 'LT-L123', 2.56, 12.99, 37, GETDATE()​) 

사실 난 제품 테이블에 날짜를 수정 필드 중 하나에 기본 날짜 제약 조건이 있지만 열 '에 NULL 값을 삽입 할 수 없습니다 예외 을 던지고 있도록이 제약은 새로운 임시 테이블에 복사하지 않았다 ModifiedDate ', 테이블'tempdb.dbo. # Product

임시 테이블의 모든 제약 조건을 복사하는 방법이 있습니까?

답변

0

Select into는 대상 테이블에서 그들을 얻을 수있는 유일한 방법 Primarykeys, 외국 Keys..The 같은 어떤 제약을 복사하지 않습니다 그들을

select into에 의해 복사 유일하게 신원

입니다 .. 수동 스크립트에 밖으로
select * into dbo.test/#test from test1--only copies identity 
+0

이 복사 색인 속성 ????? – yuvi

+0

@theGameiswar 수동으로 제약 조건을 만들지 않고도 임시 테이블에서 모든 것을 한 번에 가져올 수있는 다른 방법이 있습니까? –

+0

@RajaYuvi : 아니요. – TheGameiswar

0

임시 테이블에 제약 조건을 암시 적으로 '복사'하거나 만들 수 없습니다. 원본 테이블의 스키마를 사용하여 임시 테이블을 원본 미러로 다시 만드는 방법을 고려해보십시오. 같은 방법으로 인덱스와 제약 조건을 다시 만들 수 있습니다.

필자는 INFORMATION_SCHEMA.COLUMNS, INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 및 INFORMATION_SCHEMA.TABLE_CONSTRAINTS를 코딩 기준으로 삼을 것입니다.

관련 문제