SQL - URGENTE SIN SOLUCIÓN: Actualizar llave Principal

 
Vista:

URGENTE SIN SOLUCIÓN: Actualizar llave Principal

Publicado por TODO_ES_SQL (20 intervenciones) el 30/01/2005 21:09:09
HOLA MASTER'S DE LAS BASES DE DATOS:
ALGUIEN ME PUEDE DAR UNA SOLUCIÓN URGENTE A MI DUDA?, TENGO UN SISTEMA EN VB6 Y MANIPULO LA BASE DE DATOS EN ACCESS, UTILIZO UN OBJETO ADODC PARA HACER LA CONEXION Y TODO BIEN, PUEDO SELECCIONAR, ELIMINAR, INSERTAR Y ACTUALIZAR UTILIZANDO CONSULTA S SQL, PERO UN PEQUEÑO SIMPLE PROBLEMA, NO PUEDO ENCUENTRO LA FORMA DE ACTUALIZAR LOS REGISTROS CUANDO LA LLAVE PRINCIPAL ES MODIFICADA Y ESA LLAVE YA EXISTE (COMO BIEN SABEN, NO PUEDE HABER DOS LLAVES IGUALES) ASI QUE CON LA CONSULTA:
UPDATE MiTabla SET Llave_Prin='" & TxtLlave.Text & ",Campo1='" & TxtCampo1.Text & "' WHERE Llave_Prin='" & TxtLlave.Text & "'"
LO QUE ME OCURRE ES LO SIGUIENTE:
-SI LA LAVE PRINCIPAL NO LA MODIFICO, NO HAY NINGÚN PROBLEMA, PORQUE SOLO ACTUALIZA LOS OTROS CAMPOS,
-SI LA MODIFICO Y NO EXIXTE, NO ME HACE NADA,
-SI LA MODIFICO, Y YA EXISTE ESA LLAVE, ME MODIFICA EL CAMPO QUE YA TIENE ESA LLAVE.

AYUDA POR FAVOR.....
SALUDOS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:URGENTE SIN SOLUCIÓN: Actualizar llave Principa

Publicado por Isaías Islas (5072 intervenciones) el 31/01/2005 16:54:50
Mi duda es: ¿Y realmente quiere MODIFICAR SU PK?, eso no suena nada coherente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE SIN SOLUCIÓN: Actualizar llave Principa

Publicado por TODO_ES_SQL (20 intervenciones) el 01/02/2005 08:01:33
POR SUPUESTO QUE SÍ, MI SISTEMA DEBE SER MUY FLEXIBLE EN ESE SENTIDO, YA QUE SE MANEJAN EMPLEADOS CON UNA CLAVE PROPORCIONADA POR EL ADMINISTRADOR, PERO QUÉ PASARÁ CUANDO SE REQUIERA CAMBIAR LAS CLAVES?. POSIBLEMENTE TU IDEA ES MANEJAR QUIZÁS UNA PK AUTONUMÉRICA, POR EJEMPLO, PERO ¿PARA QUÉ HACERLO SI SE PARA ESO SE LE DA UNA CLAVE A LOS EMPLEADOS?, ¿ME EXPLICO?
DE ANTEMANO, AGRADEZCO MUCHO TU AYUDA.
SALUDOS!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE SIN SOLUCIÓN: Actualizar llave Principa

Publicado por Edgar (19 intervenciones) el 01/02/2005 15:12:42
Hola

El problema que veo es que estas colocando Update llave where pk= llave.. alli esta el problema

Debes guardar la llave principal en una variable, de tal manera que puedas colocar en la clausula where la verdadera clave.. me explico, guardas en una variable local el contenido de tu clave, y luego haces lo siguiente

UPDATE MiTabla SET Llave_Prin='" & TxtLlave.Text & ",Campo1='" & TxtCampo1.Text & "' WHERE Llave_Prin='" & MiClave& "'"

De esta manera se soluciona tu problema

Debes asegurarte de que la actualización se haga en cascada, porque si no, corres el riesgo de caer en inconsistencia o que no se actualizen los datos

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE SIN SOLUCIÓN: Actualizar llave Principa

Publicado por Jose @lejandro Sanguinetti (9 intervenciones) el 15/02/2005 21:16:33
Las soluciones anteriores son Incoherentes y en runtime no se puede realizar. Me explico: Tu query de Update se lee de manera secuencial en todos los leguajes esto quiere decir que modifica tu Primary Key y luego lo busca para actualizarlo en definitivo pero como para ese tiempo no existe el no lo encontrara y no modificara el resto de los campos. Esto quiere decir que NO SE PUEDEN MODIFICAR LOS CAMPOS QUE SON PRIMARY KEY O POR LAS CUALES SE REALIZA UNA BUSQUEDA. POR QUE ES INCORRECTO LO QUE PUEDE HACER ES UNA ELIMINACIÓN DEL REGISTRO SI ES QUE NO TIENE DEPENDENCIA Y DEBES ELIMINARLA Y VOLVERLO A CREAR CON OTRA CLAVE, QUE ES LO QUE SE HACE EN LA VIDA REAL. APRENDA.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE SIN SOLUCIÓN: Actualizar llave Principa

Publicado por Isaías Islas (5072 intervenciones) el 02/02/2005 18:09:03
Bueno, la teoria del diseño de las bases de datos dice: "Una PK (Primary Key), rara vez debe modificarse", pero si ese fuera el caso, entonces nada mas cuidad tu IR con una actualización ON CASCADE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar