• Viernes 3 de Mayo de 2024, 02:38

Autor Tema:  Cambiar El Primare Key  (Leído 1510 veces)

Cajami

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Cambiar El Primare Key
« en: Viernes 26 de Enero de 2007, 14:58 »
0
hola bueno no se si irá aqui mi pregunta, si no es asi, disculpen, tengo en un formulario un TextBox, 3 Combobox, ahora dependiendo de las opciones que se pongan en esos controles se genera un codigo, ahora ese codigo lo guardo en un tabla y los demas campos de esa tabla guardo los resultados de esos combos, buen exactamente sus codigos. Me explico mejor:

si en el TextBox pongo 2007, en el combo1 selecciono Secundaria (guardaré S), en el combo 2 seleciono 5 (guardaré 5) y en el combo 3 selecciono Matematicas (guardaré 06) ahora el codigo generado es: 2007S506 ahora eso iría en el primare key de mi tabla, en los demas campos de la tabla voy a poner S,5,06
mi estructura:

                        2007S506          |          S          |          5          |          06

ahora mi interrogante es de ese registro mas adelante, tengo que cambiarle una opcion, ejemplo ia no es 5 sino 2 ps tengo que modificar ese registgo facil puedo buscarlo por el registro y le cambio en vez de ese 5 le pongo 2 pero si cambiara asi tengo que cambiar tambien el codigo ya que tendria que ser 2007S206 y no se si se puede hacer una modificacin asi, espero que me hayan entendido.  :hola:
Lima - Perú

-------------------------------------------------------------------------------------------------------
"Persigue tus metas, tus objetivos, tus sueños, nunca t rindas si t caes 1000 veces levantat 1000 veces y sigue adelante..."

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Cambiar El Primare Key
« Respuesta #1 en: Viernes 26 de Enero de 2007, 20:11 »
0
si tu llave primaria no es identidad creo que no tendras problemas y podras hacerlo sin ningun problema.
Pero si es identidad, no podras hacerlo.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

Cajami

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Cambiar El Primare Key
« Respuesta #2 en: Viernes 26 de Enero de 2007, 21:51 »
0
hola a que te refieres con indentidad, en el remoto caso que no tenga identidad como puedo cambiar ese primare key y como saber que se que se cambia no se esta repitiendo ia en otro registro???
Lima - Perú

-------------------------------------------------------------------------------------------------------
"Persigue tus metas, tus objetivos, tus sueños, nunca t rindas si t caes 1000 veces levantat 1000 veces y sigue adelante..."

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Cambiar El Primare Key
« Respuesta #3 en: Sábado 27 de Enero de 2007, 13:57 »
0
Citar
hola a que te refieres con indentidad,
Que la llave es creada automaticamente por el gestor y no asi por el usuario, La primer llave comenzaria en un valor que vos le des y se incrementaria en otro valor que vos le das al momento de crear la tabla.

Citar
en el remoto caso que no tenga identidad como puedo cambiar ese primare key
con un Update.

Citar
y como saber que se que se cambia no se esta repitiendo ia en otro registro???
Primero una pregunta. Por que generas esa llave ??, de que te sirve ???
Supuestamente antes de ejecutar la modificacion no hay repetidos, cuando mandes a ejecutar la modificacion podras saber cuantos registros fueron modificados (0 o 1).
0 si es que ya existe
1 si no existia.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"

Cajami

  • Miembro MUY activo
  • ***
  • Mensajes: 298
    • Ver Perfil
Re: Cambiar El Primare Key
« Respuesta #4 en: Sábado 27 de Enero de 2007, 21:51 »
0
es que ese va a ser el codigo del Registro en este caso, para depsues poderlo buscar con ese codigo, en otro formulario ingresando ese codigo ps lo busco en esa tabla y muestro su Nivel (Secundaria o Primaria) su grado (1,2,...5), ....., y ese codigo del Registro está conformado por las opciones que escoja, asi como lo explique al principio.

Ahora para modificarlo me dices con Update, pero por ejemplo en este sp:

Código: Text
  1.  
  2. CREATE PROCEDURE MODIFICAR_REGISTRO
  3. @CodRegistro as char(8),  
  4. @CodNivel as char(1),  
  5. @CodGrado as char(1),  
  6. @CodArea as char (2),  
  7. @CodDocente as char(2),
  8.  
  9. AS
  10. UPDATE Registro
  11. set CodNivel = @CodNivel, CodGrado = @CodGrado, CodArea = @CodArea, CodDocente = @CodDocente
  12. WHERE CodRegistro = @CodRegistro
  13.  
  14.  

Me supongo que tengo que pasar el registro que tengo que modificar y logico que se van a modificar todos sus campos pero el codigo del registro no y ps tengo que modificar tando sus campos como la primare key ya que si cambia uno el campo Nivel, Grado o Area ps el codigo Cambia, en ese caso como puedo trabajar con el UPDATE
Lima - Perú

-------------------------------------------------------------------------------------------------------
"Persigue tus metas, tus objetivos, tus sueños, nunca t rindas si t caes 1000 veces levantat 1000 veces y sigue adelante..."

lencho

  • Miembro de PLATA
  • *****
  • Mensajes: 1076
    • Ver Perfil
Re: Cambiar El Primare Key
« Respuesta #5 en: Lunes 29 de Enero de 2007, 18:30 »
0
Citar
es que ese va a ser el codigo del Registro en este caso, para depsues poderlo buscar con ese codigo, en otro formulario ingresando ese codigo ps lo busco en esa tabla y muestro su Nivel (Secundaria o Primaria) su grado (1,2,...5), ....., y ese codigo del Registro está conformado por las opciones que escoja, asi como lo explique al principio.
Algunas de las reglas de sugerencias en la creacion de tablas (creo que se llama normalizacion)son: No almacenar valores calculables como ser edad ya que se podria calcular a partir de la fecha de nacimiento.

Código: Text
  1. CREATE PROCEDURE MODIFICAR_REGISTRO
  2. @CodRegistro as char(8),  
  3. @CodNivel as char(1),  
  4. @CodGrado as char(1),  
  5. @CodArea as char (2),  
  6. @CodDocente as char(2),
  7. @CodNUEVOREGISTRO as char(8)
  8.  
  9. AS
  10. UPDATE Registro
  11. set CodRegistro = @CodNUEVOREGISTRO, CodNivel = @CodNivel, CodGrado = @CodGrado, CodArea = @CodArea, CodDocente = @CodDocente
  12. WHERE CodRegistro = @CodRegistro
  13.  

Ojo, probalo el update, ya que yo no lo he probau.

BYTE.
______________________________________________________________________________________
"No estoy de acuerdo con lo que dices, pero defenderé con mi vida tu derecho a expresarlo"