Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Modificar campo pk

Estas en el tema de Modificar campo pk en el foro de SQL Server en Foros del Web. Hola, tengo una tabla que contiene un campo pk y tengo que modificar algunos registros afectando al campo primary key (update) ¿ que tengo que ...
  #1 (permalink)  
Antiguo 26/11/2013, 08:59
 
Fecha de Ingreso: junio-2012
Mensajes: 233
Antigüedad: 11 años, 10 meses
Puntos: 3
Pregunta Modificar campo pk

Hola, tengo una tabla que contiene un campo pk y tengo que modificar algunos registros afectando al campo primary key (update) ¿ que tengo que hacer para poder modificaría ? y que el cambio que hare no vaya a afectar a todos los registros y que siga siendo ese campo pk despues de la actualización.

Lo que sucede es que los valores contenidos en el campo PK hay algunos que están mal y hay que sustituirlos por los correctos como atacaría este caso?

muchas gracias.

Saludos
  #2 (permalink)  
Antiguo 26/11/2013, 09:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Modificar campo pk

Depende mucho del escenario.
¿Esa PK es tomada como FK de alguna otra tabla?
Si no lo es, no debería causar mayores problemas en tanto el valor que reemplace la PK no exista ya en la base.
¿Puedes ejemplificrnos el cambio de un registro, para ver mejor el problema?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 26/11/2013, 09:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Modificar campo pk

como bien te dicen mientras no hay dependencias de la PK (FK), no tendrias problema alguno y podrias hacer el cambio sin mayor problema ahora, ya intentaste el cambio? te funciono? te marco algun error?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 26/11/2013, 10:57
 
Fecha de Ingreso: junio-2012
Mensajes: 233
Antigüedad: 11 años, 10 meses
Puntos: 3
Exclamación

Si existen dependencias ya que el campo que quiero modificar que es pk es un campo de usuarios y este esta como fk en otras tablas como la de perfil, permisos.

Tambien el campo usuario esta como : clustered, unique, primary key located on PRIMARY

Última edición por gnzsoloyo; 26/11/2013 a las 11:16
  #5 (permalink)  
Antiguo 26/11/2013, 11:09
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Modificar campo pk

eso ultimo es un indice que se crea cuando declaras una campo como llave primaria, si quieres cambiar una de tus PK deberas de hacer un update en cascada, que si no lo declaraste en tu definicion de FK entonces tendras que hacerlo manual :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 26/11/2013, 11:34
 
Fecha de Ingreso: junio-2012
Mensajes: 233
Antigüedad: 11 años, 10 meses
Puntos: 3
Exclamación Respuesta: Modificar campo pk

Cita:
Iniciado por Libras Ver Mensaje
eso ultimo es un indice que se crea cuando declaras una campo como llave primaria, si quieres cambiar una de tus PK deberas de hacer un update en cascada, que si no lo declaraste en tu definicion de FK entonces tendras que hacerlo manual :P

Gracias Libras
entonces el cambio quedaría:

Tendría que retirar las llaves foráneas (dependencias con la pk) y corregir el dato en cada tabla ,luego voy a la tabla que tiene la pk la retiro y corrijo el dato luego agrego la pk y luego voy a las tablas que tenían la fk y la vuelvo a establecer ¿es correcto?.


Gracias y Sauludos
  #7 (permalink)  
Antiguo 26/11/2013, 11:43
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Modificar campo pk

Exacto es lo que debes de realizar :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 26/11/2013, 17:54
 
Fecha de Ingreso: junio-2012
Mensajes: 233
Antigüedad: 11 años, 10 meses
Puntos: 3
Exclamación Respuesta: Modificar campo pk

Ya lo resolvi. pero me parecio extraño que hiciera el update directamente en la tabla al campo pk lo pude modificar directamente sin que el gestor de bd
me dijera que no se puede por dependendias fk que si las tiene por que sera que paso eso?
  #9 (permalink)  
Antiguo 26/11/2013, 18:09
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Modificar campo pk

quizas tenias habilitados los updates en cascada en la creacion de tus FK :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 26/11/2013, 18:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Modificar campo pk

Cita:
Iniciado por antvo Ver Mensaje
Ya lo resolvi. pero me parecio extraño que hiciera el update directamente en la tabla al campo pk lo pude modificar directamente sin que el gestor de bd
me dijera que no se puede por dependendias fk que si las tiene por que sera que paso eso?
Sólo puede ocurrir en dos circunstancias:
1) No existen FK declaradas, pese a que lo supongas.
2) Todas las FK declaradas tienen la clausula ON DELETE CASCADE ON UPDATE CASCADE, como ya se te mencionó algo más arriba. En ese caso SQL Server se encara de resolver ese UPDATE en cascada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 28/11/2013, 13:06
 
Fecha de Ingreso: junio-2012
Mensajes: 233
Antigüedad: 11 años, 10 meses
Puntos: 3
Respuesta: Modificar campo pk

Gracias por sus comentarios.

Saludos

Etiquetas: key, llave, server, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:39.