如何重置Id列内容?

时间:2016-10-18 13:31:44

标签: sql-server tsql

在我的SQL Server 2008数据库中,我有一个表Inspectors

| Id | Inspector  |
| 11 | inspector1 | 
| 12 | inspector3 | 
| 13 | inspector4 | 
| 14 | inspector5 | 

Id列是主键,定义为自动增量。

我需要重置Id列,并使Id列内容如下:

| Id | Inspector  |
| 1  | inspector1 | 
| 2  | inspector3 | 
| 3  | inspector4 | 
| 4  | inspector5 | 

知道如何将上面的Id列内容更改为所需的Id内容?

1 个答案:

答案 0 :(得分:2)

这是可能的但非常强烈不推荐。如果你弄错了,试图做这样的事情会彻底弄乱你的数据库完整性。如果您想要定期执行此操作,那将会变得无法维护。

如果您需要为非生产数据库执行一次性以进行某些测试,可以尝试以下操作:

  • 备份数据库
  • 将数据库置于单用户模式
  • 从字段中删除标识属性
  • 添加一个名为IDnew
  • 的标识属性的新字段
  • 将新字段添加到也称为IDnew
  • 的相关表中
  • 使用连接更新所有相关表中的IDnew列 原始ID以获取值
  • 编写子表上的FK约束
  • 删除FK约束
  • 删除主表中的ID列以及与之关联的列 在子表中
  • 将IDNew重命名为父表中的ID
  • 将子表中的IDnew列重命名为原始名称 该表中的字段
  • 运行脚本以创建FKS