2009-03-09 6 views

Répondre

452
ALTER TABLE TableName 
ALTER COLUMN ColumnName NVARCHAR(200) [NULL | NOT NULL] 

EDIT Comme indiqué NULL/NOT NULL aurait été spécifiée, voir Rob's answer aussi bien.

+1

Pourquoi faut-il préciser? Quel est le bénéfice? Tout ce que je veux laisser tel quel, je n'ai pas besoin de le mentionner, je pense. –

+2

@TheincredibleJan Ce serait cool, mais malheureusement, cela ne fonctionne pas de cette façon. Si vous exécutez une commande ALTER TABLE TableName ALTER COLUMN ColumnName pour modifier une colonne existante qui est [NOT NULL] ', et que vous ne le spécifiez pas explicitement, ce sera [NULL]' après, car c'est la valeur par défaut . – takrl

19

Utilisez l'instruction Table d'altération.

Alter table TableName Alter Column ColumnName nvarchar(100) 
156

Ne pas oublier la nullabilité.

ALTER TABLE <schemaName>.<tableName> 
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL] 
+1

Quel est le problème avec la nullité? Si je ne veux pas le changer, quel est l'avantage de le redéfinir? –

+2

^Il sera par défaut à NULL après l'exécution de l'instruction alter table sans définir explicitement ce qu'il devrait être. – sc305495

2

Tant que vous augmentez la taille de votre Varchar vous êtes OK. Selon la référence Alter Table:

La réduction de la précision ou de l'échelle d'une colonne peut entraîner une troncation de données.

-10

Essayez ceci:

ALTER TABLE "table_name" 
MODIFY "column_name" "New Data Type"; 
+1

"Modifier" n'est évidemment pas correct. S'il vous plaît comparer avec d'autres réponses. – Frank

+0

Ceci est ancien, mais semble que Kai Tzer prouvait MySQL et/ou Oracle DDLs. –

9

La syntaxe de modifier une colonne dans une table existante dans SQL Server (Transact-SQL) est:

ALTER TABLE table_name 
    ALTER COLUMN column_name column_type; 

Par exemple:

ALTER TABLE employees 
    ALTER COLUMN last_name VARCHAR(75) NOT NULL; 

Ce serveur SQL er ALTER TABLE exemple va modifier la colonne appelée last_name pour être un type de données de VARCHAR(75) et forcer la colonne à ne pas autoriser les valeurs nulles.

voir

+1

s'il vous plaît ajouter plus d'informations à votre réponse et formater le code/requête! –

2

Pour changer le type de données

alter table table_name 
alter column column_name datatype [NULL|NOT NULL] 

Pour changer de clé primaire

ALTER TABLE table_name 
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name) 
Questions connexes