2009-03-09 9 views

Respuesta

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

EDIT Como se ha señalado NULL/NOT NULL se debería haber especificado, ver Rob's answer también.

+1

Qué! ¿Se especifica? ¿Cuál es el beneficio? Todo lo que quiero dejar como está, no tengo que mencionarlo, creo. –

+2

@TheincredibleJan Eso sería genial, pero desafortunadamente no funciona de esa manera. Si emite un comando 'ALTER TABLE TableName ALTER COLUMN ColumnName' para cambiar una columna existente que es' [NOT NULL] ', y no la especifica explícitamente, será' [NULL] 'después, ya que es la predeterminada . – takrl

19

Utilice la instrucción Alter table.

Alter table TableName Alter Column ColumnName nvarchar(100) 
156

No olvide nullability.

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

¿Cuál es el problema con la capacidad de nulidad? Si no quiero cambiarlo, ¿cuál es el beneficio al configurarlo de nuevo? –

+2

^Pasará a NULL por defecto después de que la instrucción alter table termine de ejecutarse sin definir explícitamente lo que debería ser. – sc305495

2

Mientras esté aumentando el tamaño de su varchar, está bien. Según la referencia Alter Table:

Reducir la precisión o la escala de una columna puede provocar el truncamiento de datos.

-10

Prueba esto:

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

"Modificar" obviamente no es correcto. Por favor compare con otras respuestas. – Frank

+0

Esto es antiguo, pero parece que Kai Tzer estaba probando MySQL y/o Oracle DDL. –

9

La sintaxis para modificar una columna en una tabla existente en SQL Server (Transact-SQL) es:

ALTER TABLE table_name 
    ALTER COLUMN column_name column_type; 

Por ejemplo:

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

Este SQL Serv er ALTER TABLE ejemplo modificará la columna llamada last_name para que sea un tipo de datos VARCHAR(75) y obligue a la columna a no permitir valores nulos.

ver

+1

por favor agregue más información a su respuesta y formatee el código/consulta! –

2

Para cambiar el tipo de datos

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

Para cambiar de clave primaria

ALTER TABLE table_name 
ADD CONSTRAINT PK_MyTable PRIMARY KEY (column_name) 
Cuestiones relacionadas