Синтаксис команды:
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