2011-11-09 21 views
0

我正在嘗試使用AdventureWorks數據庫爲另一個數據庫生成一些測試數據。當我執行下面的查詢時,它會產生24個重複的主鍵。因此,除非我關閉目標數據庫表上的PK,否則查詢將不會運行。源數據庫不包含這些重複項。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 JOIN不知道它雖然

+0

這不會幫助所有問題是否得到複製,因爲密鑰不1 = 1的關係 – Seph