2011-11-09 15 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

はキーが1 = 1の関係ではないので問題は重複を取得している場合

+0

けれども、それについては全くこの文句を言わないの助けをわからない、LEFT JOINを試みることが可能性があり – Seph

関連する問題