2011-11-09 3 views
0

다른 데이터베이스의 일부 테스트 데이터를 생성하기 위해 AdventureWorks 데이터베이스를 사용하려고합니다. 다음 쿼리를 실행하면 24 개의 중복 된 기본 키가 생성됩니다. 따라서 대상 db 테이블에서 PK를 해제하지 않으면 쿼리가 실행되지 않습니다. 소스 db에는 이러한 중복이 들어 있지 않습니다.SQL Server에서 데이터를 전송할 때 중복 행을 생성 함.

INSERT INTO [TestDb] (TestId, Name, Location) 
SELECT 
    p.[BusinessEntityID], 
    p.[FirstName]+ISNULL(p.[MiddleName], '')+p.[LastName], 
    a.[City] 
FROM [AdventureWorks2008R2].[Person].[Person] AS p 
INNER JOIN [AdventureWorks2008R2].[Person].[BusinessEntityAddress] AS b 
ON p.BusinessEntityID = b.BusinessEntityID 
INNER JOIN [AdventureWorks2008R2].[Person].[Address] AS a 
ON a.AddressID = b.AddressID; 

복제본이 생성되는 이유에 대한 제안이 있으십니까? 테스트 데이터를 생성하는 더 좋은 방법이 있습니까? 중복 된 행을 삭제하는 가장 좋은 방법은 정보를 잃어 버렸는지 상관하지 않는다는 것입니다. 감사 데이브

답변

0

일 수 LEFT이

+0

키가 1 = 1의 관계하지 않기 때문에 문제가 중복을 받고 모든 경우에이 늘 도움 불구하고 그것에 대해 확실하지 않은 가입 시도 – Seph

관련 문제