我正在使用SQL Server 2005。我正在将数据从当前数据库(单表)迁移到新数据库(规范化 - 多表)。在新数据库中,我有一个基本表(我们称之为“BaseTable”),以及多个其他表(我们称之为“DependentA”和“DependentB”)。旧数据库中的一些数据将转移到BaseTable,另一些数据将转移到其他两个表中。BaseTable与DependentA和DependentB都有一对一的关系,使用它们的Id作为外键。所以我的问题是:我应该如何迁移数据?这是我一直在尝试的查询,除了一个问题外它是有效的:BaseTable中用于其他两个表的外键是相同的,而不是各自不同的。
Begin SQL:
BEGIN TRANSACTION
DECLARE @dep1Id int
DECLARE @dep2Id int
INSERT INTO DependentA (column1, column2)
SELECT c1, c2
FROM OldDatabase.OldTable
SELECT @dep1Id = Scope_Identity()
INSERT INTO DependentB (column3, column4)
SELECT c3, c4
FROM OldDatabase.OldTable
SELECT @dep2Id = Scope_Identity()
INSERT INTO BaseTable (column5, dependentTable1Id, dependentTablr2Id)
SELECT c5, @dep1Id, @dep2Id
FROM OldDatabase.OldTable
COMMIT