为什么有人应该在SQL Server中使用“身份范围管理”

| 几年前,当我开始从事复制工作时,我确信Identity Range Management仅在最近的SQL Server中出于传统目的才可用,因为在SQL Server 2000之前,GUID type字段不存在,并且大多数主键是建立在自动增量字段上。 我已经看过其中一些数据库在“工作中”,并且可以说,在复杂的复制拓扑中管理这些身份范围可以是真正的PITA,并且可以确保头疼和整夜的调试会话。 我在这里刚刚读到,仍然建议将身份范围管理作为SQL Server 2008的默认设置,然后是关于最佳做法和身份范围管理的另一个问题,其中#mwolfe02得出的结论是,在某些情况下,用户无法在数据库中插入数据除非他们被授予数据库所有者的权利! 令人不安的,不是吗。因此,除了旧数据库之外,为什么有人应该将身份范围管理与SQL Server一起使用?以更通用的方式,为什么有人会在数据库中推广任何预定的\\自动增量识别方法?     
已邀请:
我猜想继续使用标识值的原因之一是由于使用GUID作为数据库中的主键的缺点,在GUID中将其记录为PRIMARY KEY。 我个人从未使用过复杂的复制拓扑,并且在设置复制时始终使用整数。我通过调整标识函数的增量值来管理标识范围,因此,如果我有两个服务器正在复制中,则我将在一个服务器上具有奇数,在另一个服务器上具有偶数,并增加2。相同的设置适用于多台服务器,设置的增量等于服务器的数量。 我还将标识范围从整数的最低数字(-2,147,483,648到2,147,483,647)开始,因为有很多不被用作整数标识列的值经常不是从一个整数开始。即使您涉及20台服务器,也仍然可以使用很多值。     

要回复问题请先登录注册