用多行更新链接表

我有一个像这样的表结构的现有数据库:

TABLE [Parent]
  [Parent_ID] UNIQUEIDENTIFIER 

TABLE [ChildA]
  [ChildA_ID] INT
  [Parent_ID] UNIQUEIDENTIFIER FK -> [Parent].[Parent_ID]

TABLE [ChildB]
  [ChildB_ID] INT
  [Parent_ID] UNIQUEIDENTIFIER FK -> [Parent].[Parent_ID]

为了支持未来的功能,我需要的链接行ChildAChildB使恰好有一个ChildB每个ChildA 。 新的结构应该是

TABLE [ChildA]
  [ChildA_ID] INT
  [Parent_ID] UNIQUEIDENTIFIER FK -> [Parent].[Parent_ID]

TABLE [ChildB]
  [ChildB_ID] INT
  [ChildA_ID] INT FK -> [ChildA].[ChildA_ID]
  [Parent_ID] UNIQUEIDENTIFIER FK -> [Parent].[Parent_ID]

现在,两个表在ChildAChildB表中都包含几个几乎重复的行。 为了这个问题,我们假设每个表中的行数对于任何给定的Parent_Id是相同的。 我需要选择一个独特的ChildA每个ChildB ,即使我有来接他们随意。

这适用于每个表格中只有一行的情况:

UPDATE b
SET    [ChildA_ID] = a.[ChildA_ID]
FROM   [ChildB] b
       INNER JOIN [ChildA] a ON a.[Parent_ID] = b.[Parent_ID]

我没有任何其他标准添加到JOIN 。 我认为ROW_NUMBER可以工作,但是这个数据库在SQL Server 2000上运行。当有多个记录时,我将ChildA_ID为每个ChildB_ID分配一个ChildA_ID

链接地址: http://www.djcxy.com/p/95671.html

上一篇: Update linked tables with multiple rows

下一篇: How to create a idendity for each id