Adicionar coluna ao SQL Server

101

Preciso adicionar uma coluna à minha SQL Servertabela. É possível fazer isso sem perder os dados, já perdi?

Antarr Byrd
fonte

Respostas:

158

Claro! Basta usar a ALTER TABLE...sintaxe.

Exemplo

ALTER TABLE YourTable
  ADD Foo INT NULL /*Adds a new int column existing rows will be 
                     given a NULL value for the new column*/

Ou

ALTER TABLE YourTable
  ADD Bar INT NOT NULL DEFAULT(0) /*Adds a new int column existing rows will
                                    be given the value zero*/

No SQL Server 2008, o primeiro é uma alteração apenas de metadados. O segundo atualizará todas as linhas.

Na edição SQL Server 2012+ Enterprise, o segundo também é uma alteração apenas de metadados .

Martin Smith
fonte
17

Use esta consulta:

ALTER TABLE tablename ADD columname DATATYPE(size);

E aqui está um exemplo:

ALTER TABLE Customer ADD LastName VARCHAR(50);
bhavesh N
fonte
1
Se você código postal, amostras de XML ou de dados, por favor destacar as linhas no editor de texto e clique no botão "código de amostras" ( { }) na barra de ferramentas do editor de bem formato e sintaxe destacá-lo!
marc_s
3

Adicionar uma coluna usando SSMS ou ALTER TABLE .. ADDnão eliminará nenhum dado existente.

Alex K.
fonte
2

Adicionar nova coluna à tabela

ALTER TABLE [table]
ADD Column1 Datatype

Por exemplo

ALTER TABLE [test]
ADD ID Int

Se o usuário quiser torná-lo incrementado automaticamente, então

ALTER TABLE [test]
ADD ID Int IDENTITY(1,1) NOT NULL
Chirag Thakar
fonte
-1

Adicione uma nova coluna à tabela com o valor padrão.

ALTER TABLE NAME_OF_TABLE
ADD COLUMN_NAME datatype
DEFAULT DEFAULT_VALUE
Rakesh Singh Balhara
fonte
Sua resposta seria muito melhor se você acrescentasse uma breve explicação sobre o que está acontecendo aqui.
Bonifacio2