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 limitar el número de filas que me regresa una consulta en SQL Server utilizando la cláusula OFFSET FETCH

Cómo limitar el número de filas que me regresa una consulta en SQL Server utilizando la cláusula OFFSET FETCH

Las cláusulas OFFSET y FETCH se utilizan con la cláusula ORDER BY. Las cuales te permiten limitar el número de filas que devolverá una consulta.

Ver artículo completo
¿Qué son las sentencias INNER JOIN de SQL y cómo funciona?

¿Qué son las sentencias INNER JOIN de SQL y cómo funciona?

En este tutorial, aprenderás a usar la cláusula o sentencia INNER JOIN de SQL Server para realizar consultar datos en varias tablas.

Ver artículo completo
¿Cómo crear una tabla en SQL Server?

¿Cómo crear una tabla en SQL Server?

En este tutorial, aprenderá a usar la instrucción CREATE TABLE de SQL Server para crear una nueva tabla.

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 ;