Risposte:
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
NOT NULL
, deve essere menzionata nella query altrimenti la imposterà per NULL
impostazione predefinita. ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
alter table Employee alter column salary numeric(22,5)
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)
L'esecuzione ALTER COLUMN
senza menzionare l'attributo NOT NULL
comporterà la modifica della colonna in nullable, se non lo è già. Pertanto, è necessario prima verificare se la colonna è nullable e, in caso contrario, specificare l'attributo NOT NULL
. In alternativa, è possibile utilizzare la seguente istruzione che verifica in anticipo la nullità della colonna ed esegue il comando con l'attributo giusto.
IF COLUMNPROPERTY(OBJECT_ID('Employee', 'U'), 'Salary', 'AllowsNull')=0
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
ELSE
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NULL
Selezionare la tabella -> Progettazione -> modifica il valore in Tipo di dati mostrato nella seguente Fig.
Salva il design delle tabelle.
Un approccio interessante può essere trovato qui: Come ingrandire le colonne senza tempi di inattività di spaghettidba
Se si tenta di ingrandire questa colonna con un comando "ALTER TABLE" diretto, sarà necessario attendere che SQL Server passi attraverso tutte le righe e scrivere il nuovo tipo di dati
ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;
Per ovviare a questo inconveniente, c'è una pillola magica per l'ingrandimento della colonna che il tuo tavolo può prendere e si chiama Row Compression. (...) Con la compressione di riga, le colonne di dimensioni fisse possono utilizzare solo lo spazio necessario per il tipo di dati più piccolo in cui si adattano i dati effettivi.
Quando la tabella viene compressa a ROW
livello, l' ALTER TABLE ALTER COLUMN
operazione di metadati è solo.