Respuestas:
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
NOT NULL
, debe mencionarse en la consulta; de lo contrario, la establecerá de forma NULL
predeterminada. 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)
Si se ejecuta ALTER COLUMN
sin mencionar el atributo NOT NULL
, la columna se cambiará a anulable, si ya no lo es. Por lo tanto, primero debe verificar si la columna es anulable y, de lo contrario, especificar el atributo NOT NULL
. Alternativamente, puede usar la siguiente instrucción que verifica la nulabilidad 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
Seleccione la tabla -> Diseño -> cambie el valor en el Tipo de datos que se muestra en la siguiente Fig.
Guardar tablas de diseño.
Enfoque interesante se puede encontrar aquí: Cómo ampliar sus columnas sin tiempo de inactividad por spaghettidba
Si intenta ampliar esta columna con un comando directo "ALTER TABLE", tendrá que esperar a que SQLServer recorra todas las filas y escriba el nuevo tipo de datos
ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;
Para superar este inconveniente, hay una píldora mágica de ampliación de columna que su mesa puede tomar, y se llama Compresión de fila. (...) Con la compresión de filas, las columnas de tamaño fijo solo pueden usar el espacio necesario para el tipo de datos más pequeño donde se ajustan los datos reales.
Cuando la tabla se comprime en el ROW
nivel, entonces ALTER TABLE ALTER COLUMN
es solo una operación de metadatos.