Alterando o tamanho da coluna no SQL Server

Respostas:

507
ALTER TABLE [Employee]
ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
Darren
fonte
6
Cuidado, se você estiver alterando uma coluna em uma tabela de dados muito grande. Você pode causar uma falha (no meu ambiente de qualquer maneira).
precisa saber é o seguinte
55
Também é importante que, se a coluna estiver com atributo NOT NULL, ela tiver que ser mencionada na consulta, caso contrário ela será configurada como NULLpadrão. ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5) NOT NULL
Suvendu Shekhar Giri
8
Se você tiver um índice em que a coluna que você vai ter que soltá-lo, em seguida, executar o código ALTER TABLE e, em seguida, criar o índice novamente
Sr.PEDRO
43
alter table Employee alter column salary numeric(22,5)
Priyank Patel
fonte
21
ALTER TABLE [table_name] ALTER COLUMN [column_name] varchar(150)
Durgesh Pandey
fonte
19

A execução ALTER COLUMNsem mencionar o atributo NOT NULLresultará 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
Hamid Heydarian
fonte
6

Selecione a tabela -> Design -> altere o valor em Tipo de dados mostrado na figura a seguir.

insira a descrição da imagem aqui

Salve o design das tabelas.

arnav
fonte
verifique corretamente pode estar faltando alguma etapa.
Arnav
7
Ferramentas -> Opções ... /> Designers -> Tabela e banco de dados Designers - desmarque a opção "Impedir salvar as alterações que exigem a recriação da tabela"
7anner
Para a maioria das coisas, eu prefiro scripts. Mas para alterações de coluna, eu gosto da interface do usuário. Não se esqueça de verificar NOT NULL, cálculos ou propriedades adicionais da coluna. Basta clicar em Salvar (depois de alterar as configurações no SSMS como @ 7anner notes).
Jacob H
1

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 ROWnível, a ALTER TABLE ALTER COLUMNoperação é apenas de metadados.

Lukasz Szozda
fonte