我想将数据从一个数据库迁移到另一个数据库。表模式完全相同:
CREATE TABLE Customers(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
(some other columns ......)
);
CREATE TABLE Orders(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[CustomerId] INT NOT NULL,
(some other columns ......),
CONSTRAINT [FK_Customers_Orders] FOREIGN KEY ([CustomerId]) REFERENCES [Customers]([Id])
)
Run Code Online (Sandbox Code Playgroud)
两个数据库有不同的数据,因此同一个表的新身份密钥在两个数据库中会不同。这不是问题;我的目标是将新数据附加到现有数据中,而不是完全替换整个表的所有数据。但是我想维护插入数据的所有父子关系。
如果我使用 SSMS 的“生成脚本”功能,脚本将尝试使用相同的 ID 插入,这会与目标数据库中的现有数据发生冲突。如何仅使用数据库脚本复制数据?
我希望目的地的标识列从其最后一个值正常继续。
Customers
没有任何其他UNIQUE NOT NULL
约束。它是确定在其他列重复数据(我使用的是Customers
与Orders
只是作为一个例子在这里,所以我没有解释整个故事)。问题是关于任何一对 N 关系。
我有一个由两个字段组成的复合键的表:A
和B
。
A
就像用户 ID 或机器 ID,它是全局唯一的。B
只有几个可能的值(小于 5)。组合键的样子(user1 + B1)
,(user2 + B1)
,(user3 + B1)
,(user1 + B2)
等我不希望通过向数据转换成几桌分裂B
以来的行数还没有达到那个量呢。
为了获得最佳查找性能,主索引中字段的顺序应该是什么?AB
或者BA
?