SQL

Cómo modificar una columna de una tabla de SQL Server con ALTER COLUMN

Estrada Web Group
jiestrada
Cómo modificar una columna de una tabla de SQL Server con ALTER COLUMN

Resumen: en este tutorial, aprenderás a usar la instrucción ALTER TABLE ALTER COLUMN de SQL Server para modificar una columna de una tabla.

SQL Server te permite realizar los siguientes cambios en una columna existente de una tabla:

  • Modificar el tipo de datos
  • Cambiar el tamaño
  • Agregar una restricción NOT NULL

Modificar el tipo de datos de la columna

Para modificar el tipo de datos de una columna, utiliza la siguiente declaración de ALTER TABLE y para agregar una columna puedes utilizar ALTER TABLE ADD:

ALTER TABLE table_name
ALTER COLUMN column_name new_data_type(size);

El nuevo tipo de datos debe ser compatible con el anterior, de lo contrario, obtendrás un error de conversión en caso de que la columna tenga datos y no se convierta.

Observa el siguiente ejemplo.

Primero, crea una nueva tabla con una columna cuyo tipo de datos sea INT:

CREATE TABLE t1 (c INT);

En segundo lugar, inserta algunas filas en la tabla con la instrucción INSERT INTO:

INSERT INTO t1
    VALUES
        (1),
        (2),
        (3);

Posteriormente, modifica el tipo de datos de la columna de INT a VARCHAR:

ALTER TABLE t1 ALTER COLUMN c VARCHAR (2);

Después, inserta una nueva fila con datos de cadena de caracteres:

INSERT INTO t1
VALUES ('@');

Enseguida modifica el tipo de datos de la columna de VARCHAR de nuevo a INT:

ALTER TABLE t1 ALTER COLUMN c INT;

SQL Server regresa el siguiente error:

Error de conversión al convertir el valor varchar '@' al tipo de datos int.

Cambiar el tamaño de una columna

La siguiente declaración crea una nueva tabla con una columna cuyo tipo de datos es VARCHAR (10):

CREATE TABLE t2 (c VARCHAR(10));

Insertemos algunos datos de muestra en la tabla t2:

INSERT INTO t2
VALUES
    ('SQL Server'),
    ('Modify'),
    ('Column')

Podemos aumentar el tamaño de la columna de la siguiente manera:

ALTER TABLE t2 ALTER COLUMN c VARCHAR (50);

Sin embargo, cuando reduces el tamaño de la columna, SQL Server comprueba los datos existentes para ver si puede convertir los datos en función del nuevo tamaño. Si la conversión falla, SQL Server finaliza la declaración y emite un mensaje de error.

Por ejemplo, si reduces el tamaño de la columna c a 5 caracteres:

ALTER TABLE t2 ALTER COLUMN c VARCHAR (5);

SQL Server regresa el siguiente error:

Los datos binarios o de la cadena se truncan en la columna "c" de la tabla "test.dbo.t2". Valor truncado: "".

Agregar una restricción NOT NULL a una columna que acepta valores NULL

La siguiente declaración crea una nueva tabla con una columna que acepta valores NULL:

CREATE TABLE t3 (c VARCHAR(50));

La siguiente declaración inserta algunas filas en la tabla:

INSERT INTO t3
VALUES
    ('Nullable column'),
    (NULL);

Si deseas agregar la restricción NOT NULL a la columna c, primero debes actualizar NULL a NOT NULL, por ejemplo:

UPDATE t3
SET c = ''
WHERE
    c IS NULL;

Y luego agregue la restricción NOT NULL:

En este tutorial, has aprendido a usar SQL Server ALTER TABLE ALTER COLUMN para modificar algunas propiedades de una columna existente.

Compartir artículo:

Más artículos geniales

Cómo eliminar una base de datos utilizando DROP DATABASE y SQL Server Management Studio

Cómo eliminar una base de datos utilizando DROP DATABASE y SQL Server Management Studio

Resumen: en este tutorial, aprenderás cómo eliminar una base de datos en una instancia de SQL Server utilizando la instrucción DROP DATABASE y SQL Server Management Studio.

Ver artículo completo
¿Cómo obtener el valor máximo en SQL Server con la función MAX()?

¿Cómo obtener el valor máximo en SQL Server con la función MAX()?

En este tutorial, aprenderás a usar la función MAX() de SQL Server para encontrar el valor máximo en un grupo de resultados.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla ;