1
3
希望你没有太多的记录。如果使用ManagementStudio将现有字段更改为Identity,会发生的情况是,它使用Identity字段集创建另一个表。它打开标识插入并插入原始表中的记录,然后关闭标识插入。然后它删除旧表并重命名它刚创建的表。如果您有许多记录,这可能是一个相当长的过程。如果是这样的话,我会编写这个脚本,然后在一个非工作时间运行的作业中执行,因为在执行此操作时,表将完全锁定。 |
2
4
工具>选项>设计器>表和数据库设计器 取消选中“防止保存需要重新创建表的更改” [编辑]我在填充表中尝试过,没有丢失数据,但我对这一点了解不多。 |
3
2
只需在ManagementStudio中执行所有更改,将生成的脚本复制/粘贴到文件中。此时不要保存更改。根据需要查看和编辑该脚本,它可能会完全按照您的想法执行(它将删除原始表并将临时表重命名为原始表的名称),但也会处理所有约束和FK。 |
4
0
如果您现有的整数列是唯一的,并且合适,那么将它转换为pk应该没有问题。 另一种选择是,如果不想使用现有列,可以向主表添加一个新的pk列,填充它并对其进行种子设定,然后运行update语句以使用新的pk更新所有其他表。 不管你怎么做,确保你先做备份!! |
5
0
在复制完数据后,始终可以添加标识列。然后您还可以将标识种子重置为最大整数+1。这样可以解决你的问题。 DBCC CHECKIDENT('MyTable',重设,n) 其中n是您希望标识从中开始的编号。 |
dave paola · 在Postgres中包含架构信息的主键 6 年前 |
Anand Tripathi · 正确选择UUID作为主键的数据类型 6 年前 |
Palisand · 在复合主键中使用时未创建MySQL外键 7 年前 |
Holf · 我应该将主键拆分为分区键和行键组件吗? 7 年前 |
user979974 · php mysql更新表选项列表框 7 年前 |