2014-10-23 4 views
-1

Title,date1, date2,author, articleText, hasVideo, hasImage, ArticleID을 포함하는 origArticleTable 테이블이 필요합니다. 두 테이블로 나눕니다. 나는 동일한 내용을 모두 포함하지 않는 다른 소스의 데이터를 포함해야하기 때문에 두 개의 테이블이 필요합니다. 예를 들어, 다른 소스는 title, itemDescription, date1, urlLink, comments, uniqueID을 포함하는 테이블을 가질 것입니다.두 테이블에 걸쳐 분할 된 DB 테이블

기본적으로 나는 내 origArticleTable을 "복합"테이블과 메타 테이블 또는 지원 테이블로 옮기고, 내가 가지고있는 질문은 "내가 CompositeTable에 삽입하면 중첩 할 수 있습니까, 아니면 뭔가 다른 것일 수 있습니까? CompositeTable "을 삽입에 의해 생성되는 ID로 ArticleMeta을 채우는 삽입

여기를 무너 뜨리는 것입니다 : 내가 뭘하는 방법이 확실하면이 두 가지에 내 현재 테이블에서 삽입 데이터입니다

compositeTable 
    ID (auto-incrementing identity column) 
    Title 
    date1 
    TextContent 


ArticleMeta 
    compositeID 
    ArticleID 
    hasVideo 
    hasImage 
    author 
    date2 

테이블. CompositeTable에 해당 항목이 없으면 데이터를 ArticleMeta에 넣을 수 없습니다. CompositeTable에 상품을 삽입하고 ID을 사용하여 나머지 정보를 ArticleMeta에 삽입하는 것으로 알고 있습니다.

나는 결합 조인을 사용하여 insert-select 문을 설계하려 한 origArticleTableCompositeTable에 삽입을 포함 CompositeTable하지만이 작동처럼도 보이는 아무것도 구축 실패되었습니다.

도움을 주시면 감사하겠습니다. 더 나은 설명이 필요하거나 무엇이든지 있으면 알려주세요.

편집 ---- 여기에 제가 작업을 시도한 insert-select 엉망입니다. 시작한 이후로 바뀌 었습니다.

insert into ArticleMeta (compositeID, ArticleID, hasVideo, hasImage, author, date2) 
    select id from (insert into CompositeTable (Title, date1, textContent) 
         select Title, date1, articleText 
          from origArticleTable) 
    join 
    select ArticleID, hasVideo, hasImage, author, date2 
     from origArticleTable 
+0

몇 가지 특별한 이유는 일부 열을 NULLABLE로 표시 할 수 없기 때문입니다. – Bill

+0

시도한 삽입 - 선택을 편집 - 게시 할 수 있습니까? 왜 작동하지 않았는가? –

+0

@TabAlleman 바로 추가하겠습니다. – shadonar

답변

1

제목이 원본 테이블의 고유 키이면 다음과 같이하십시오. 원본 테이블의 고유 키가 새 테이블에 없으면 임시로 추가 한 다음 삭제하십시오.

DECLARE @T1 TABLE (Title varchar(50), NewID int) 
INSERT INTO compositeTable (Title, date1, TextContent) 
OUTPUT inserted.Title, Inserted.ID INTO @T1 
SELECT compositeTable (Title, date1, TextContent) 
FROM origArticleTable 


insert into ArticleMeta (compositeID, ArticleID, hasVideo, hasImage, author, date2) 
SELECT T1.ID, o.compositeID, o.ArticleID, o.hasVideo, o.hasImage, o.author, o.date2 
FROM @T1 T1 
INNER JOIN origArticleTable o ON T1.Title = o.Title 
관련 문제