我有一些具有主键uniqueidentifier类型的表,并添加了非顺序ID,现在我只想开始在此表中仅添加顺序ID。 guid生成在代码中。这是否有可能在先前数据的索引中产生问题。从逻辑上讲,我看不到任何问题,但是找不到关于这种情况的任何信息。
P.S这是旧项目。我无法将表中所有以前的主键更新为顺序键,因为没有外键关系,并且其他表中将开始出现不匹配的情况。
答案 0 :(得分:2)
首先,我可以给你一个有根据的答案:
如果您生成的第一个顺序guid大于表中插入的最后一个guid,则可以确保插入的其他顺序guid不会引起任何索引问题;因为它们是顺序的!为此,您可以通过将最后插入的非序列guid传递给Sequentialguid创建器方法,来解决该问题并为每个表创建第一个SequentialGuid,使其大于该表中最后插入的非序列guid。 您可以在此link中找到一个库,该库可让您创建一个以lastId作为基值的SequentialGuid。
此外,请注意,可以在服务器重新启动的情况下修改顺序向导的顺序。因此,从这个角度来看,SequentialGuids是不可靠的。
最后,如果适用于您的情况,我建议您使用更好的解决方案: