我有一个棕色字段SQL Server 2005数据库,它使用标准的,未排序的GUID作为主键值的大部分,也用于聚簇索引(这对性能有害)。
我应该如何将这些更改为顺序GUID?其中一个挑战是在更改每个主键时替换所有外键值。
您知道有哪些工具或脚本可以执行此类转换吗?
答案 0 :(得分:5)
请记住,您只能将newsequentialid()函数用作默认值
所以创建一个包含2列的新表。将原始表中的密钥插入此表中(将另一列留下,它将自行填充)
加入原始表并使用newsequantialid更新PK,如果你有级联更新,FK应该自己更新
答案 1 :(得分:0)
你怎么知道它对性能有害?
GUID的优点是您不必担心同时创建记录的多个进程。它可以大大简化您的代码,具体取决于程序。
答案 2 :(得分:0)
当Guid是PK时,SequentialGuids最适合表现。这就是他们存在的原因。