2012-04-13 35 views

Respuesta

283
ALTER TABLE [Employee] 
ALTER COLUMN [Salary] NUMERIC(22,5) 
+3

Tenga cuidado, si está cambiando una columna en una tabla de datos muy grande. Puede causar un bloqueo (en mi entorno de todos modos). – DavidTheDev

+34

También es importante que si la columna tiene el atributo 'NOT NULL', debe mencionarse en la consulta, de lo contrario, establecerá' NULL' de manera predeterminada. 'ALTER TABLE [Empleado] ALTER COLUMN [Salario] NUMERIC (22,5) NOT NULL' –

+0

Si tiene un índice en esa columna, tendrá que soltarlo, luego ejecutar el código alter table y luego crear el index again –

30
alter table Employee alter column salary numeric(22,5) 
10
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150) 
10

Correr ALTER COLUMN sin mencionar atributo NOT NULL resultará en la columna que se cambió a anulable, si ya no lo es. Por lo tanto, primero debe verificar si la columna es nulable y si no, especifique el atributo NOT NULL. Alternativamente, puede usar la siguiente declaración que verifica la anulabilidad de la columna de antemano y ejecuta el comando con el atributo correcto.

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 
+0

¡Gracias por la nota sobre las cosas que aceptan nulos! – user3341592

0

Seleccione la tabla -> Diseño -.> Valor de cambio en el tipo de datos se muestra en la siguiente figura

enter image description here

Guardar tablas de diseño.

+2

No funciona cada vez que –

+0

revise correctamente podría ser que le falta algún paso. –

+0

no funciona si ya tiene valores en la tabla –

Cuestiones relacionadas