![]() |
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是您希望标识从中开始的编号。 |
![]() |
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 2 年前 |
![]() |
Nick Fleetwood · 调度语法的LINQ查询 3 年前 |
![]() |
Mateen Bagheri · 选择表的计数并选择其自身 3 年前 |
![]() |
Java · 使用交叉应用同时显示两列 3 年前 |