Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Cómo cambiar el tamaño de un campo tipo varchar (https://www.clubdelphi.com/foros/showthread.php?t=49044)

subzero 11-10-2007 14:13:05

Cómo cambiar el tamaño de un campo tipo varchar
 
Hola,


Estoy tratando de cambiar el tamañao de un campo de 7 caracteres a 8 caracteres en FIREBIRD 2.0, cabe anotar que el campo es de tipo "varchar", no se encuentra relacionado con ninguna TABLA, VISTA o PROCEDIMIENTO, lo he realizado desde EMS y desde el IBExpert, el script que se muestra para realizar el cambio es el siguiente;

Código SQL [-]
ALTER TABLE PROTOCOLOS_CARACTERISTICAS
ALTER COLUMN PRO_CAR_CODIGO
TYPE VARCHAR(8);

Pero al ejecutarlo me muestra esto:


Código:

fmCompile.quCompile:
This operation is not defined for system tables.unsuccessful metadata update.
MODIFY RDB$RELATION_FIELDS failed.
action cancelled by trigger (1) to preserve data integrity.
Cannot update index segment used by an Integrity Constraint.

Agradezco, si alguien conoce la manera o el porque se muestra este mensaje.

jhonny 11-10-2007 15:59:10

Atención: Lo siguiente solo es un trozo de codigo que nunca he probado, solo es una suposición de lo que haria FireBird internamente a la hora de modificar la estructura, hazlo en una base de datos de prueba para ver como te va y nos cuentas ;).

Haz la siguiente consulta:

Código SQL [-]
select RDB$Field_source from rdb$relation_fields where rdb$field_name='NombreDelCampoEnCuestion' and 
RDB$relation_name='NombreDeLaTablaDondeEstaElCampoEnCuestion'

Eso te debe devolver un valor parecido al siguiente:

RDB$2519

Una vez tengas ese valor haces:

Código SQL [-]
update rdb$fields set rdb$field_length='TamanoNuevo' where 
rdb$field_name='ElValorQueTeDevolvioAnterior(En nuestro caso RDB$2519)'

Espero que esta suposición funcione correctamente y no vaya a dañar nada en tu base de datos :).

subzero 12-10-2007 05:43:55

De antemano te agradezco Jhonny, lo que hice fue borrar todas la relaciones que involucraban a mi tabla, luego quite la llave primaria sobre el campo que desea cambiar el tamaño lo edite aumente los caracteres y listo..... pero antes de esto utilice lo que me aconsejaste y me seguia mostrando el mismo error.... igual muchas gracias

jhonny 12-10-2007 14:57:27

Ahhh, entonces la cuestión era de llaves foraneas... es que como habias dicho que esa tabla no tenia relación con ninguna otra, pues por eso busque otra medida :), de todas formas que bueno que hayas solucionado el problema ;).


La franja horaria es GMT +2. Ahora son las 06:35:59.

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