Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-01-2013
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
No hay ninguna clave externa apuntando a la tabla PVP el único impedimento es que el campo a modificar es clave primaria y no me deja ni eliminar la clave, ni siquiera el propio campo, pero si me deja eliminar la tabla entera.

Lo que pienso hacer mañana:

1. Crear una tabla igual pero con otro nombre PVP1, esto lo haré con el IbExpert la opción DDL, copio y pego el código en Tools - Script Executive. aqui ya cambio el ancho del campo modificando el DDL antes de ejecutar.

2.-Creada la nueva tabla vacía, ejecuto un SQL: Insert Into PVP1 Select * from PVP;

3.-Elimino PVP y renombro PVP1.


Ya veremos lo que resulta.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #2  
Antiguo 24-01-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por marcoszorrilla Ver Mensaje
No hay ninguna clave externa apuntando a la tabla PVP el único impedimento es que el campo a modificar es clave primaria y no me deja ni eliminar la clave, ni siquiera el propio campo, pero si me deja eliminar la tabla entera.
Hola de nuevo Marcos.

No sé si te sirva para el caso, pero suponiendo que ID es el nombre del campo y TABLA_PK el nombre de la restricción (PRIMARY KEY), para quitarla:
Código SQL [-]
ALTER TABLE TABLA DROP CONSTRAINT TABLA_PK

Para aplicarla nuevamente:
Código SQL [-]
ALTER TABLE TABLA ADD CONSTRAINT TABLA_PK PRIMARY KEY(ID)


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 24-01-2013
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Voy a realizar esa prueba, porque el IbExpert no me deja quitar la clave, veré si me deja por SQL.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #4  
Antiguo 24-01-2013
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Bueno gracias a todos y especialmente ECFISA, el SQL de su último mensaje ha funcioado.

Antecedentes:Cambiar el ancho del campo CODIGO Varchar(10) PK a 12.
Desde el IbExpert no deja cambiar el ancho, ni eliminar el campo porque es Clave primaria, tampoco deja desactivar la clave primaria.

Desde el ISQL ejecutando el SQL se soluciona todo.

Código SQL [-]
Código SQL [-]ALTER TABLE TABLA DROP CONSTRAINT TABLA_PK


Para aplicarla nuevamente despues de cambiar el ancho:
Código SQL [-]ALTER TABLE TABLA ADD CONSTRAINT TABLA_PK PRIMARY KEY(ID)


Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 24-01-2013
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Finalmente he probado a ejecutar el código SQL desde el SQL EDITOR del IBExpert y ha funcionado.

1. Ejecutar codigo para quitar la Clave Primaria.
2. Editar el campo y luego su dominio para cambiar el ancho.
3. Ejecutar el código para restaurar la Clave Primaria.

No olvidar pulsar sobre el botón Commit.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #6  
Antiguo 24-01-2013
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Aquí dejo el guión (script) con el que he resuelto el problema.

Código SQL [-]
ALTER TABLE PVP DROP CONSTRAINT PK_PVP_CODIGO;

ALTER TABLE PVP
ALTER CODIGO TYPE VARCHAR(12) CHARACTER SET ISO8859_1;

ALTER TABLE PVP ADD CONSTRAINT PK_PVP_CODIGO PRIMARY KEY(CODIGO);


ALTER TABLE abonos
ALTER CODPRODUC TYPE VARCHAR(12) CHARACTER SET ISO8859_1;

ALTER TABLE controlpesos
ALTER CODIGO TYPE VARCHAR(12) CHARACTER SET ISO8859_1;

ALTER TABLE depositos
ALTER CODPRODUC TYPE VARCHAR(12) CHARACTER SET ISO8859_1;

ALTER TABLE hdepositos
ALTER CODPRODUC TYPE VARCHAR(12) CHARACTER SET ISO8859_1;

ALTER TABLE lineascompras
ALTER CODPRODUC TYPE VARCHAR(12) CHARACTER SET ISO8859_1;

ALTER TABLE lineaspedidos
ALTER CODIGO TYPE VARCHAR(12) CHARACTER SET ISO8859_1;


ALTER TABLE lineasventas
ALTER CODPRODUC TYPE VARCHAR(12) CHARACTER SET ISO8859_1;


ALTER TABLE movalmacenes
ALTER CODIGO TYPE VARCHAR(12) CHARACTER SET ISO8859_1;


ALTER TABLE pvpsp
ALTER CODIGO TYPE VARCHAR(12) CHARACTER SET ISO8859_1;

ALTER TABLE regulariza
ALTER CODIGO TYPE VARCHAR(12) CHARACTER SET ISO8859_1;

ALTER TABLE tarifas
ALTER CODIGO TYPE VARCHAR(12) CHARACTER SET ISO8859_1;

ALTER TABLE tmplineasventas
ALTER CODPRODUC TYPE VARCHAR(12) CHARACTER SET ISO8859_1;



DROP TABLE FAMILIAS;


SET SQL DIALECT 3;



/******************************************************************************/
/*                                   Tables                                   */
/******************************************************************************/



CREATE TABLE FAMILIAS (
    CODIGO   VARCHAR(2) NOT NULL,
    FAMILIA  VARCHAR(35) NOT NULL
);




/******************************************************************************/
/*                                Primary Keys                                */
/******************************************************************************/

ALTER TABLE FAMILIAS ADD CONSTRAINT PK_FAMILIA_CODIGO PRIMARY KEY (CODIGO);


/******************************************************************************/
/*                                  Indices                                   */
/******************************************************************************/

CREATE UNIQUE INDEX ID_FAMILIA ON FAMILIAS (FAMILIA);


/******************************************************************************/
/*                                 Privileges                                 */
/******************************************************************************/

INSERT INTO FAMILIAS (CODIGO, FAMILIA)
              VALUES ('01', 'QUIMICOS');
INSERT INTO FAMILIAS (CODIGO, FAMILIA)
              VALUES ('02', 'CELULOSAS');
INSERT INTO FAMILIAS (CODIGO, FAMILIA)
              VALUES ('03', 'UTILES DE LIMPIEZA Y CARROS');
INSERT INTO FAMILIAS (CODIGO, FAMILIA)
              VALUES ('04', 'PLASTICOS Y BOLSAS');
INSERT INTO FAMILIAS (CODIGO, FAMILIA)
              VALUES ('05', 'DISPENSADORES');


COMMIT WORK;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con llaves foraneas jcrg666 MySQL 1 01-04-2010 00:41:36
Claves foraneas Jcarloscgl Firebird e Interbase 2 26-02-2008 21:38:57
Error con claves foráneas david.rguez MySQL 1 08-02-2007 13:51:42
LLaves foraneas... Luis Castillo SQL 2 13-11-2005 18:45:34
Llaves Foraneas RainFall MySQL 1 26-07-2004 04:19:28


La franja horaria es GMT +2. Ahora son las 14:21:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi