Hola mundo! (es mi primera vez que publico en el foro),
Tengo una duda y no he visto ninguna solución en el foro, la explico a ver si alguien (quizá Alberto ) me da la mejor solución.
Necesito cambiar el tipo de datos de una clave primaria en una tabla de millones de registros ya que en el diseño utilizaron CHAR en lugar de VARCHAR y ahora tengo problemas con claves externas, el problema lo tengo que al intentar eliminar la clave primaria, me da "Time out" (no tiene ningún indice excepto el creado por defecto por la clave primaria).
¿Cual sería el mejor proceso para realizar este cambio?
Gracias y un saludo,
Cambiar tipo de dato CHAR a VarCHAR
Started by .Miguel, ene 19 2011 19:11
5 replies to this topic
#1
Escrito 19 enero 2011 - 19:11
#2
Escrito 19 enero 2011 - 21:29
¿Hay Foreign Keys apuntando a la PK de esa tabla? En caso afirmativo, ¿Cuántas?...
Saludos,
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
#3
Escrito 20 enero 2011 - 00:07
Si, habrá unas 5 tablas que le apuntan con FK. La opción que veo viable es:
Eliminar claves externas.
Eliminar clave primaria.
Modificar con
ALTER TABLE TABLA_X
ALTER COLUMN COMUN_X VARCHAR(X) NOT NULL
Y VOLVER A CREAR LA PK Y FK
Eliminar claves externas.
Eliminar clave primaria.
Modificar con
ALTER TABLE TABLA_X
ALTER COLUMN COMUN_X VARCHAR(X) NOT NULL
Y VOLVER A CREAR LA PK Y FK
#4
Escrito 20 enero 2011 - 07:50
Si esa es una posible vía...
Si quieres también puedes hacerte una copia de la tabla antes por si acaso:
En cuanto tenga un ratejo te miro a ver si se me ocurre alguna otra alternativa...
Si quieres también puedes hacerte una copia de la tabla antes por si acaso:
SELECT * INTO AdventureWorks2008.person.person3 FROM AdventureWorks2008.person.person
En cuanto tenga un ratejo te miro a ver si se me ocurre alguna otra alternativa...
Saludos,
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
#5
Escrito 20 enero 2011 - 10:06
Gracias Alberto, por cierto, ¿si hago un Snapshot de la base de datos, la podría utilizar para recuperar el estado anterior en caso de fallo con todas las FKs, la PK y todos los datos dañados desde el Snapshot hasta la modificación? (Te digo Snapshot ya que pienso que sería la forma mas rápida de recuperación)
Gracias de nuevo y un saludo,
Miguel.
Gracias de nuevo y un saludo,
Miguel.
#6
Escrito 20 enero 2011 - 10:19
Si, aquí tienes info de como hacer la instantanea y luego de como restaurar la base de datos en caso de necesitarlo:
http://www.hola-mund...-crear-snapshot
http://www.hola-mund...-crear-snapshot
Saludos,
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
Alberto Dominguez
Enterprise Architect y Trainer
MCT, MCPD, MCITP, MCITP Dynamics, MCSE, MCSA, MCTS, MCP...
ITIL V3 Foundation Qualification in IT Service Management
Perfil Profesional Twitter
0 usuarios están leyendo este tema
0 miembro/s, 0 invitado/s, 0 usuario/s anónimo/s