sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo cambiar el tamaño de una columna en SQL Server (T-SQL)

Si usa SQL Server y desea usar T-SQL para cambiar el tamaño de una columna existente, este artículo puede ser de ayuda.

Por "cambiar el tamaño de una columna existente", me refiero a cambiar el tamaño de los datos. Por ejemplo, supongamos que tiene un varchar(255) pero desea aumentar su tamaño a varchar(500) . Esto es lo que debe hacer en ese caso.

La declaración ALTER TABLE

Si está haciendo esto con T-SQL, necesita usar ALTER TABLE declaración. Esta declaración le permite cambiar la definición de una tabla después de que ya se haya creado (y también puede contener datos).

Aquí hay un ejemplo de cómo cambiar el tamaño de una columna existente:

ALTER TABLE Tasks
    ALTER COLUMN TaskDescription varchar(500);
GO

Este ejemplo modifica las Tasks tabla cambiando el tamaño de la TaskDescription columna.

Obviamente, esto supone que la columna (y la tabla) ya existen en la base de datos. De lo contrario obtendrá un error.

Comprueba los resultados

Puede verificar el tamaño de la columna ejecutando una consulta contra INFORMATION_SCHEMA.COLUMNS . Así:

USE Solutions;
SELECT 
    COLUMN_NAME,
    DATA_TYPE,
    CHARACTER_MAXIMUM_LENGTH,
    CHARACTER_OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Tasks';

Resultado:

COLUMN_NAME      DATA_TYPE  CHARACTER_MAXIMUM_LENGTH  CHARACTER_OCTET_LENGTH
---------------  ---------  ------------------------  ----------------------
TaskId           int        null                      null                  
TaskName         nvarchar   255                       510                   
TaskDescription  varchar    500                       500

En este caso, cambiamos a la base de datos correcta (Solutions ), luego consultamos INFORMATION_SCHEMA.COLUMNS para obtener información sobre las columnas en las Tasks mesa. Podríamos haber reducido esto solo a la columna que nos interesa si hubiera demasiadas columnas en la tabla, pero para este ejemplo, tres columnas no son un problema.