Respostas:
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
NOT NULL
, ela tiver que ser mencionada na consulta, caso contrário ela será configurada como NULL
padrão. 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)
A execução ALTER COLUMN
sem mencionar o atributo NOT NULL
resultará na alteração da coluna para anulável, se já não estiver. Portanto, você precisa primeiro verificar se a coluna é anulável e, se não, especificar o atributo NOT NULL
. Como alternativa, você pode usar a seguinte instrução que verifica a nulidade da coluna com antecedência e executa o comando com o atributo correto.
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
Selecione a tabela -> Design -> altere o valor em Tipo de dados mostrado na figura a seguir.
Salve o design das tabelas.
Uma abordagem interessante pode ser encontrada aqui: Como ampliar suas colunas sem tempo de inatividade by spaghettidba
Se você tentar ampliar esta coluna com um comando direto "ALTER TABLE", precisará aguardar o SQLServer percorrer todas as linhas e escrever o novo tipo de dados
ALTER TABLE tab_name ALTER COLUMN col_name new_larger_data_type;
Para superar esse inconveniente, existe uma pílula de aumento de coluna mágica que sua mesa pode tomar e é chamada de compactação de linha. (...) Com a compactação de linha, suas colunas de tamanho fixo podem usar apenas o espaço necessário para o menor tipo de dados em que os dados reais se encaixam.
Quando a tabela é compactada no ROW
nível, a ALTER TABLE ALTER COLUMN
operação é apenas de metadados.