sql - texto - ¿Cambiar la longitud máxima de una columna varchar?
varchar acepta guiones (3)
ALTER TABLE table name
modificar el table name
column name
COLUMN varchar ("longitud");
Estoy tratando de actualizar la longitud de una columna varchar de 255 caracteres a 500 sin perder el contenido. He eliminado y vuelto a crear tablas antes, pero nunca he estado expuesto a la declaración alter, que es lo que creo que necesito usar para hacer esto. Encontré la documentación aquí: ALTER TABLE (Transfact-SQL), sin embargo, no puedo encontrar cara o cruz.
Tengo lo siguiente hasta ahora (esencialmente nada desafortunadamente):
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3
¿Cómo me acerco a esto? ¿Hay mejor documentación para esta declaración (hice algunas búsquedas para un enunciado de ejemplo pero salió vacío)?
Aumentar el tamaño de la columna con ALTER
no perderá ningún dato:
alter table [progennet_dev].PROGEN.LE
alter column UR_VALUE_3 varchar(500)
Como señala @Martin, recuerde especificar explícitamente NULL | NOT NULL
NULL | NOT NULL
Necesitas
ALTER TABLE YourTable ALTER COLUMN YourColumn <<new_datatype>> [NULL | NOT NULL]
Pero recuerde especificar NOT NULL
explícitamente si lo desea.
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NOT NULL;
Si lo dejas no especificado como abajo ...
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500);
Luego, la columna dará valores predeterminados para permitir nulos, incluso si se definió originalmente como NOT NULL
. es decir, omitir la especificación en una ALTER TABLE ... ALTER COLUMN
siempre se trata como.
ALTER TABLE YourTable ALTER COLUMN YourColumn VARCHAR (500) NULL;
Este comportamiento es diferente del utilizado para columnas nuevas creadas con ALTER TABLE
(o en CREATE TABLE
time). Allí la capacidad de nulidad predeterminada depende de la configuración ANSI_NULL_DFLT
.