2014-01-08 38 views
1

我搜查了,也許我沒有正確地問這個問題。如何刪除重複項並更新「一對多」相關表?

我繼承了一個令人討厭的數據庫,並試圖「正常化」它。 我已將一張桌子分成兩部分:業主和建築物 現在我有兩張一對一的桌子。

我知道如何刪除重複記錄(在Owners表中),但我不知道如何更新「一對多」相關表。

我有一個表 「業主」 和一代表 「業主(一個),建築(多)」

「業主」 表模式:

CREATE TABLE 
    [dbo].[tbl_BuildingOwners] 
(
    [OwnerID] [int] IDENTITY(1,1) NOT NULL, 
    [OwnerName] [nvarchar](255) NULL, 
    [OwnerAddress1] [nvarchar](255) NULL, 
    [OwnerAddress2] [nvarchar](255) NULL, 
    [OwnerAddress3] [nvarchar](255) NULL, 
    [OwnerCity] [nvarchar](255) NULL, 
    [OwnerState] [nvarchar](255) NULL, 
    [OwnerZip] [float] NULL, 
    [OwnerZipExt] [float] NULL, 
    [OwnerPhone] [nvarchar](255) NULL, 
    [OwnerFax] [nvarchar](255) NULL 
) 

「業主(一個)建築(許多)」關係表模式:

CREATE TABLE 
    [dbo].[BuildingOwnerID] 
(
    [OwnerRelationshipID] [int] IDENTITY(1,1) NOT NULL, 
    [OwnerID] [int] NOT NULL, 
    [FileNumber] [nvarchar](255) NOT NULL 
) 

我需要在BuildingOwnerID表中刪除BuildingOwners表中的重複和更新OWNERID到在BuildingOwners表離開了DISTINCT OWNERID。

我希望這是有道理的。

I have already tried this但無法讓它爲我工作。最後,我可以使用SQL服務器或MS Access,這更容易。

回答

0

刪除重複的,你可以使用下面的查詢(樣本查詢刪除重複項狀態[由國家和國家複製])....

WITH dupDel 
      AS (SELECT ROW_NUMBER() OVER (PARTITION BY country, STATE ORDER BY country) AS RowNum 
       FROM  tblTest 
      ) 
    DELETE FROM dupDel 
    WHERE RowNum > 1 
+0

@Diana現在,您需要修改其ID ...或更新...? –

相關問題