Добавить столбец в 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.