小编Gen*_*ari的帖子

向现有的唯一列添加主键约束

我已经看到很多关于向大型数据库表添加新主键列的信息,但我的情况有些不同。

我有一个没有主键的大表(约 90,000,000 条记录)。但是,它确实有一个“RowID”列,它是一个标识列。它还在 RowID 列上有一个唯一索引。

我所有的研究都表明,没有主键的表是一种糟糕的设计,如果可能的话应该去掉。在我的特殊情况下;这会导致问题,因为如果找不到主键,实体框架会将表映射为只读视图。

我想在 RowID 列上的表中添加一个主键约束。我希望因为它没有添加新列,并且该列上已经有一个唯一索引,所以这将是一个小操作;然而,从测试运行来看,这将需要很长时间。

长时间无法访问此表会导致整个业务出现问题。我知道另一种选择是使用新模式创建一个新表,并将所有数据从旧数据复制到新数据。但这也会导致我们需要长时间锁定表。

当您已经有一个带有唯一索引的标识列时,有没有办法更快地添加主键约束?

sql-server constraint primary-key

5
推荐指数
1
解决办法
1204
查看次数

标签 统计

constraint ×1

primary-key ×1

sql-server ×1