Agregar columna a SQL Server

101

Necesito agregar una columna a mi SQL Servertabla. ¿Es posible hacerlo sin perder los datos que ya tengo?

Antarr Byrd
fuente

Respuestas:

158

¡Por supuesto! Solo usa la ALTER TABLE...sintaxis.

Ejemplo

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

O

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

En SQL Server 2008, el primero es un cambio de solo metadatos. El segundo actualizará todas las filas.

En SQL Server 2012+ Enterprise Edition, el segundo es un cambio solo de metadatos también .

Martin Smith
fuente
17

Utilice esta consulta:

ALTER TABLE tablename ADD columname DATATYPE(size);

Y aquí tienes un ejemplo:

ALTER TABLE Customer ADD LastName VARCHAR(50);
bhavesh N
fuente
1
Si el código de poste, XML o datos de muestras, por favor, destacar aquellas líneas en el editor de texto y haga clic en el botón "muestras de código" ( { }) en la barra de herramientas de editor de formato y la sintaxis muy bien resáltala!
marc_s
3

Agregar una columna usando SSMS o ALTER TABLE .. ADDno eliminará ningún dato existente.

Alex K.
fuente
2

Agregar nueva columna a la tabla

ALTER TABLE [table]
ADD Column1 Datatype

P.ej

ALTER TABLE [test]
ADD ID Int

Si el usuario quiere que se incremente automáticamente,

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

Agregue una nueva columna a la tabla con el valor predeterminado.

ALTER TABLE NAME_OF_TABLE
ADD COLUMN_NAME datatype
DEFAULT DEFAULT_VALUE
Rakesh Singh Balhara
fuente
Su respuesta sería mucho mejor si agregara una breve explicación de lo que está sucediendo aquí.
Bonifacio2