【发布时间】:2019-03-11 17:24:54
【问题描述】:
我有一个包含 Parent(ParentID, ParentData) 和 Child (ChildID, ParentID, ChildData) 表的数据库。我需要编写一个脚本,将两个表复制到一个新数据库中,但两个表都具有新的 ParentID。
我知道我可以写这样的东西:
INSERT INTO Parent(ParentID, ParentData)
SELECT newid(), ParentData FROM OtherDB.dbo.Parent
但是,如果我这样做,我该如何让孩子与父母保持联系呢?还有其他更好的方法可以让我将它们保持在一起吗?
【问题讨论】:
-
如果表在不同的数据库中,为什么还需要新的 ID?
-
因为 OtherDB 是一个示例数据库,每个被复制到的数据库都是一个多租户数据库,可能需要多次将这些值复制到其中。
-
您可以将 OUTPUT 子句用于另一个包含新 ID 和原始 ID 列的表。这样,您就可以将新旧 id 绑定在一起,以便在插入子项时将其用作连接。
标签: sql sql-server tsql