Esto es relevante en un sistema que implementa el modelo de computación distribuida . Si se requiere que el sistema conozca la clave primaria en el momento en que persiste la información en el sistema, el uso de una clave principal de autoincremento mantenida por el controlador ONE ralentizará el sistema. En su lugar, necesita un mecanismo como un generador de GUID para crear la clave principal (tenga en cuenta que la verdadera característica de una clave principal es su singularidad). Entonces, puedo escalar con múltiples servicios, cada uno creando su clave principal, independientemente el uno del otro.
Tuve el dudoso privilegio de hacer esto antes y, básicamente, lo que tenía que hacer era exportar toda la maldita base de datos en XML. Luego, tuve una aplicación Java que usa la función nextLong() de java.util.Random para reemplazar la clave principal con sus nuevas claves guid. Después de eso importé todo de nuevo en la base de datos.
Por supuesto, la primera vez que traté de importar los archivos XML, olvidé desactivar la función de número automático del campo de la clave principal, así que aprenda de mis errores. Estoy seguro de que hay mejores formas de hacerlo, pero esta fue una manera rápida y sucia de hacerlo ... y funcionó. En caso de que se lo pregunte, el proyecto era hacer que la aplicación escalara.
Como ** advertencia ** para futuros lectores: solo aplique uniqueidentifiers (GUID) como claves principales después de _careful_ consideration: la mayoría de las veces es una mala idea. – DdW