Добавить столбец в SQL Server

101

Мне нужно добавить столбец в мою SQL Serverтаблицу. Можно ли сделать это без потери данных, которые у меня уже есть?

Антарр Берд
источник

Ответы:

158

Конечно! Просто используйте ALTER TABLE...синтаксис.

пример

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

Или

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

В SQL Server 2008 первое - это изменение только метаданных. Второй обновит все строки.

В выпуске SQL Server 2012+ Enterprise второе изменение также касается только метаданных .

Мартин Смит
источник
17

Используйте этот запрос:

ALTER TABLE tablename ADD columname DATATYPE(size);

А вот пример:

ALTER TABLE Customer ADD LastName VARCHAR(50);
бхавеш Н
источник
1
Если почтовый индекс, XML или данных образцов, пожалуйста , выделите эти строки в текстовом редакторе и нажмите на кнопку «код образцы» ( { }) на панели инструментов редактора , чтобы красиво формат и синтаксис выделить его!
marc_s
3

Добавление столбца с использованием SSMS или ALTER TABLE .. ADDне приведет к удалению существующих данных.

Алекс К.
источник
2

Добавить новый столбец в таблицу

ALTER TABLE [table]
ADD Column1 Datatype

Например

ALTER TABLE [test]
ADD ID Int

Если пользователь хочет, чтобы он увеличивался автоматически, тогда

ALTER TABLE [test]
ADD ID Int IDENTITY(1,1) NOT NULL
Чираг Тхакар
источник
-1

Добавить новый столбец в таблицу со значением по умолчанию.

ALTER TABLE NAME_OF_TABLE
ADD COLUMN_NAME datatype
DEFAULT DEFAULT_VALUE
Ракеш Сингх Балхара
источник
Ваш ответ был бы лучше, если бы вы добавили краткое объяснение того, что здесь происходит.
Bonifacio2