Réponses:
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
NOT NULL
elle doit être mentionnée dans la requête, sinon elle la définira NULL
par défaut. 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'exécution ALTER COLUMN
sans mentionner d'attribut NOT NULL
entraînera la modification de la colonne en nullable, si ce n'est déjà fait. Par conséquent, vous devez d'abord vérifier si la colonne est nullable et sinon, spécifier l'attribut NOT NULL
. Vous pouvez également utiliser l'instruction suivante qui vérifie au préalable la valeur Null de la colonne et exécute la commande avec l'attribut approprié.
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
Sélectionnez le tableau -> Conception -> modifiez la valeur dans le type de données comme illustré dans la figure suivante.
Enregistrez la conception des tables.
Une approche intéressante peut être trouvée ici: Comment agrandir vos colonnes sans temps d'arrêt par spaghettidba
Si vous essayez d'agrandir cette colonne avec une simple commande «ALTER TABLE», vous devrez attendre que SQLServer passe par toutes les lignes et écrive le nouveau type de données
ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;
Pour surmonter cet inconvénient, il existe une pilule d'agrandissement de colonne magique que votre table peut prendre, et elle s'appelle Row Compression. (...) Avec la compression de lignes, vos colonnes de taille fixe peuvent utiliser uniquement l'espace requis par le plus petit type de données où les données réelles tiennent.
Lorsque la table est compressée au ROW
niveau, alors l' ALTER TABLE ALTER COLUMN
opération de métadonnées est uniquement.