2011-08-30 9 views
0

나는 일부 데이터내보내기 테이블 (개체 및 데이터)

SELECT [field names] FROM [several joined tables] WHERE [some criteria is true] 

을하고 난 테이블 구조 그대로를 유지, 다른 데이터베이스에 를이 데이터를 내보낼 것입니다,하지만 그들을 채우기 WHERE 조건에 맞는 행

원본으로 5 개의 조인 된 테이블이 있으면 결과 목표 테이블도 5가됩니다. 그러나 WHERE 절 제약 조건을 전달하는 데이터로만 채우기가 희박합니다.

좀 더 간단히 말하자면 고객 데이터가 가득한 데이터베이스가 있으며, 레코드가 채워진 단일 고객에게 독립형 데이터베이스를 보내고 싶습니다.

전체 데이터베이스를 내 보낸 다음 [조건이 참이지 않은] 모든 레코드를 삭제했지만 데이터베이스의 참조 무결성이 모든 불필요한 레코드가 제거 될 것이라고 생각하지는 않습니다.

쉽게 할 수있는 '올바른'(일명 SSIS) 방법이 있습니까?

+0

원래 쿼리 기준에 정의 된 항목을 다른 데이터베이스 (병합 된 데이터 구조)로 내보내거나 원하는 데이터 요소가 고객에게 속하지만 최종 결과를 결정하는 데 중요한 것이 없음을 나타내는 것입니다. 고객 A의 데이터 만 채워진 데이터베이스 사본이어야합니다. – billinkc

답변

1

쉽고 간단한 방법은 다음과 같습니다.

단계 1. 새 데이터베이스에 원하는 테이블을 만듭니다 (2005/2008) 1 단계 A. 테이블을 마우스 오른쪽 버튼으로 클릭합니다. - 테이블을 새 이름으로 작성 - 새 쿼리 편집기로 만들기 창. 이제 새 db에서이 스크립트를 실행하십시오.

2 단계. 기준에 따라 이전 DB에서 새 DB로 데이터를 내 보냅니다. BIDS SSIS를 사용하는 경우 모든 단계를 수행 할 수 있습니다.

+0

고마워요. 그 답은 직접적인 것처럼 보입니다. BIDS 접근 방식을 점검합니다. – LesterDove

0

당신은 새로 만든 테이블에 행을 복사합니다 select into를 사용할 수 있습니다

select col1, col2, ... 
into DestinationTable 
from SourceServer.SourceDb.dbo.SourceTable 
where col1 = 'A' and ... 

네 부분으로 된 이름을 사용하면 여러 SQL 서버를 사용하고 연결된 서버가 SourceServer라는 것을하고 가정합니다. 동일한 서버에서 두 개의 데이터베이스를 사용하는 경우 이름의 서버 부분 만 제거하십시오.

+0

감사합니다. 그러나 INTO는 모든 필드를 단일 대상 테이블에 덤프합니다. 내가 필요한 것은 대상 테이블이 소스 테이블을 미러링하는 것입니다. 예를 들어, 5 개의 결합 된 테이블 -> 5 개의 동일한 스키마의 대상 테이블. 나는 분명하다. – LesterDove

+0

@LesterDove : 단일 SQL 문에서 둘 이상의 테이블을 작성, 삽입 또는 업데이트 할 수 없습니다. 따라서 5 개의'select into' 문이 필요합니다. – Andomar

관련 문제