web-dev-qa-db-fra.com

Comment modifiez-vous le type de données d'une colonne dans SQL Server?

J'essaie de changer une colonne d'un varchar(50) à un nvarchar(200). Quelle est la commande SQL pour modifier cette table?

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

EDIT Comme indiqué, NULL/NOT NULL aurait dû être spécifié, voir réponse de Rob également.

535
cmsjr

N'oubliez pas la nullité.

ALTER TABLE <schemaName>.<tableName>
ALTER COLUMN <columnName> nvarchar(200) [NULL|NOT NULL]
170
Rob Garrison

Utilisez l'instruction Alter table.

Alter table TableName Alter Column ColumnName nvarchar(100)
22
John Sansom

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

ALTER TABLE table_name
    ALTER COLUMN column_name column_type;

Par exemple:

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

Cet exemple ALTER TABLE de SQL Server modifie la colonne appelée last_name pour qu’elle soit un type de données de VARCHAR(75) et force la colonne à ne pas autoriser les valeurs NULL.

voir ici

11
Yogesh Bende

Tant que vous augmentez la taille de votre varchar, tout va bien. Selon la référence Alter Table :

Réduire la précision ou l’échelle d’une colonne peut entraîner une troncature des données.

3
jocassid

Pour changer de type de données

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

Pour changer la clé primaire

ALTER TABLE table_name  
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name)
2