我有两个具有 10-2000 万行的表,它们具有 GUID 主键,并且至少有 12 个通过外键相关的表。每个基表有 10-20 个索引。
我们正在从 GUID 转移到 BigInt 主键。我想知道是否有人对方法有任何建议。现在这是我正在考虑的方法:
- 删除所有涉及的表上的所有索引和 fkey。
- 将“NewPrimaryKey”列添加到每个表
- 在两个基表上制作密钥标识
- 编写数据更改脚本“更新表 x,设置 NewPrimaryKey = y where OldPrimaryKey = z
- 将原始主键重命名为“oldprimarykey”
- 将“NewPrimaryKey”列重命名为“PrimaryKey”
- 编写所有索引和 fkey 的脚本
这看起来是个好方法吗?有谁知道可以对此有所帮助的工具或脚本?
TD:根据附加信息进行编辑。请参阅此博客文章,该文章解决了 GUID 为主时的方法: http ://www.sqlmag.com/blogs/sql-server-questions-answered/sql-server-questions-answered/tabid/1977/entryid/12749 /默认.aspx