Pregunta

Tengo una base de datos SQL Server 2005 de campo marrón que utiliza GUID estándar sin clasificar como la mayoría de los valores de las claves primarias y también en índices agrupados (lo cual es malo para el rendimiento).

¿Cómo debo hacer para cambiar estos a GUID secuenciales? Uno de los desafíos sería reemplazar todos los valores de clave externa a medida que cambio cada clave principal.

¿Conoce alguna herramienta o secuencia de comandos para realizar este tipo de conversión?

¿Fue útil?

Solución

recuerda que solo puedes usar la función newsequentialid () por defecto

crea una nueva tabla con 2 columnas. Inserte la clave de su tabla original en esta (deje la otra columna fuera, se llenará sola)

vuelva a unirse a la tabla original y actualice el PK con el nuevo identificador secuencial, si tiene una actualización en cascada, los FK deben actualizarse por sí mismos

Otros consejos

¿Cómo sabes que es malo para el rendimiento?

La ventaja de los GUID es que no tiene que preocuparse de que múltiples procesos creen registros al mismo tiempo. Puede simplificar su código considerablemente, dependiendo del programa.

SequentialGuids son mejores para el rendimiento cuando el Guid es el PK. Esta es la razón detrás de su existencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top