Добавление столбца

Синтаксис команды:

ALTER TABLE <имя таблицы>

ADD <имя столбца> <тип данных> <ширина столбца>

[DEFAULT <значение>] [,…n];

где DEFAULT – определяет значение столбца по умолчанию.

При добавлении столбца он автоматически становится последним в таблице. Изменить положение столбца в таблице не представляется возможным.

Пример 30

Задача.

Добавить столбец YearBegin (год начала учебы в институте) в таблицу Student, задав тип данных Datetime.

Решение.

ALTER TABLE Student

ADD YearBegin Datetime;

Пример 31

Задача.

Добавить столбец IDFacultet (Код факультета) в таблицу SGroup, задав тип данных INT и определив значение по умолчанию 1.

Решение.

ALTER TABLE SGroup

ADD IDFacultet INT Default 1;

Сразу обратим внимание, что DEFAULT реализовано в SQL Server 2000 как ограничение и поэтому при дальнейшей попытке удалить этот столбец, необходимо будет сначала удалить ограничение, а затем уже удалить столбец.

При добавлении нового столбца с ограничением NOT NULL в таблицу следует руководствоваться нижеперечисленными правилами.

Если в таблице уже есть данные, то добавление столбца осуществляется или в 3 этапа (см. Пример 32):

· добавляется столбец, допускающий неопределенность значений

· столбец заполняется

· столбцу присваивается свойство NOT NULL.

Или в один этап, но задав ему значение по умолчанию или определив его как столбец IDENTITY.

Если в таблице нет данных, то добавление столбца осуществляется в 2 этапа:

· добавляется столбец, допускающий неопределенность значений

· столбцу присваивается свойство NOT NULL.

Пример 32

Задача.

Добавить в таблицу SGroup, содержащую данные, столбец IDFacultet, установив для него ограничение NOT NULL.

Решение.

Добавляем столбец IDFacultet:

ALTER TABLE SGroup

ADD IDFacultet INT;

Заполняем столбец IDFacultet, присвоив ему значение 1:

UPDATE SGroup SET IDFacultet=1

Назначаем ограничение NOT NULL:

ALTER TABLE SGroup

ALTER COLUMN IDFacultet INT NOT NULL


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: