sql - 为什么附加数据库时 "identity"列值不正确?

标签 sql sql-server-2008

有人向我发送了一个数据库(通过 .mdf.ldf 文件),我将其附加到服务器上(没有错误、警告等)并且虽然我没有证据(因为我无权访问数据库来自的服务器),但主键(身份)值似乎与原来的不同。此外,它们似乎是“重置”的 - 所有主键值都从 1 开始,而基于外键引用,很明显这是不正确的(例如,只有 1 行的表的主键值为 1,但是引用它的表引用值 7)。

虽然我不太关心,但我很好奇为什么会发生这种情况(如果有解释的话)?

我真正需要的是弄清楚是否有办法附加数据库并保留正确的值?

编辑: 据我所知,外键引用设置正确。

以下是一些屏幕截图: foreign key relationship foreign key relationship columns WTF!?

最佳答案

自从存在 FK 以来,我能想到的就是他们一开始就有一个糟糕的设计,然后有人意识到他们需要 FK,但已经有他们不想删除的坏数据,因此创建了不带检查的 FK

所有孤立记录都是早期 ID 号吗?

关于sql - 为什么附加数据库时 "identity"列值不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6311851/

相关文章:

mysql - 如何使用列名 "default"将数据插入数据库

sql - SQL Server 中数据库范围的唯一但简单的标识符

c# - 如何在 sql server 中加密数据并在 .net 应用程序中解密

sql - SQL存储过程的参数名称中的符号

sql-server-2008 - SQL Server 日期格式 (YYYY-MM-DD HH :MI:SS. MMM)

SQL Server 查询 - 在 Union All 中使用 Order By 对数据进行排序

MySQL 和使子查询更高效

Mysql if语句忽略第一个条件

mysql - 如何根据字段的值选择不同的列

sql-server-2008 - SQL Server 2008 : What is lazy schema validation?