小编kev*_*vin的帖子

如何将迁移数据复制到具有标识列的新表,同时保留 FK 关系?

我想将数据从一个数据库迁移到另一个数据库。表模式完全相同:

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约束。它是确定在其他列重复数据(我使用的是CustomersOrders只是作为一个例子在这里,所以我没有解释整个故事)。问题是关于任何一对 N 关系。

foreign-key sql-server identity

9
推荐指数
1
解决办法
2万
查看次数

组合键的顺序以获得最佳查找性能

我有一个由两个字段组成的复合键的表:AB

A就像用户 ID 或机器 ID,它是全局唯一的。B只有几个可能的值(小于 5)。组合键的样子(user1 + B1)(user2 + B1)(user3 + B1)(user1 + B2)等我不希望通过向数据转换成几桌分裂B以来的行数还没有达到那个量呢。

为了获得最佳查找性能,主索引中字段的顺序应该是什么?AB或者BA

sql-server

3
推荐指数
1
解决办法
3319
查看次数

标签 统计

sql-server ×2

foreign-key ×1

identity ×1