Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come modificare la dimensione di una colonna in SQL Server (T-SQL)

Se utilizzi SQL Server e desideri utilizzare T-SQL per modificare le dimensioni di una colonna esistente, questo articolo può aiutarti.

Per "modificare la dimensione di una colonna esistente", intendo cambiare la dimensione dei dati. Ad esempio, supponiamo di avere un varchar(255) ma vuoi aumentare le sue dimensioni a varchar(500) . Ecco cosa devi fare in questo caso.

La dichiarazione ALTER TABLE

Se lo stai facendo con T-SQL, devi usare ALTER TABLE dichiarazione. Questa istruzione ti consente di modificare la definizione di una tabella dopo che è già stata creata (e può anche contenere dati).

Ecco un esempio di modifica delle dimensioni di una colonna esistente:

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

Questo esempio modifica le Tasks tabella modificando la dimensione di TaskDescription colonna.

Questo ovviamente presuppone che la colonna (e la tabella) esistano già nel database. Altrimenti riceverai un errore.

Controlla i risultati

Puoi controllare la dimensione della colonna eseguendo una query su INFORMATION_SCHEMA.COLUMNS . In questo modo:

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

Risultato:

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

In questo caso, passiamo al database corretto (Solutions ), quindi interroghiamo INFORMATION_SCHEMA.COLUMNS per informazioni sulle colonne nelle Tasks tavolo. Avremmo potuto restringere il campo alla sola colonna che ci interessa se ci fossero troppe colonne nella tabella, ma per questo esempio, tre colonne non sono un problema.