1
现在我有一个DB,其中的PK是int IDENTITY
。我最近在去年负责将这些添加到复制拓扑。除了IDENTITY字段之外,这已经得到了很好的解决。替换现有的SQL数据库表中的PK
我想探索一下我的选项,用uniqeidentifier
(GUID)更改或替换它们。
插入一个新的PK列是否可行?
我会更好的将它增加到big int
?
还有什么我应该考虑的?
解释为何我不愿意做这样的:
这是我的理解是,当复制遇到一个标识列它留出的标识范围,说1-1000(默认值),每个订户以确保该列具有唯一的INT。你有更多的用户可能会遇到更大的问题。这导致我们不断收到的身份范围检查约束错误。
感谢
难道你不能只添加一个新的GUID列用于复制?只需添加 - 不替换 - 可能会更容易(如果可行) – 2010-10-21 16:33:04
要做到这一点,才能使用复制并完成。我试图解决的问题是'身份范围检查约束',这与复制如何处理标识字段有直接关系。 – 2010-10-21 16:34:53
因此,在这种情况下,我会*添加*一个新的GUID字段,并使其成为PK - 但是是一个非专有PK - 并将INT IDENTITY作为表中的集群密钥。您的性能可能会受到其他方面的严重影响... – 2010-10-21 16:36:46