ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку

Добавляем с дефолтным значением колонку в SQL Server 2000/2005

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы добавить столбец с значением по умолчанию в таблицу SQL Server, можно использовать следующую команду:

SQL
Скопировать код
ALTER TABLE YourTable ADD NewColumn DataType DEFAULT 'DefaultValue';

Следует заменить YourTable на имя своей таблицы, NewColumn – на название нового столбца, DataType – на тип данных, подходящий вашим потребностям, а 'DefaultValue' – на ваше значение по умолчанию. SQL Server сам выполнит данный запрос!

Пройдите тест и узнайте подходит ли вам сфера IT
Пройти тест

Использование столбцов со значениями, отличными от NULL

SQL Server автоматически заполняет добавленные не null столбцы значением по умолчанию. Если же вы хотите задать значение по умолчанию для столбца, изначально допускающего равенство null, не забудьте включить операцию WITH VALUES:

SQL
Скопировать код
ALTER TABLE YourTable ADD NewColumn DataType DEFAULT 'DefaultValue' WITH VALUES;

Именованные ограничения для поддержания работоспособности системы

Рекомендуется задавать ваши ограничения со специфическими именами, это поможет вам их изменять или удалять в процессе работы:

SQL
Скопировать код
ALTER TABLE YourTable ADD NewColumn DataType 
CONSTRAINT DF_YourTable_NewColumn DEFAULT 'DefaultValue';

DF_ – это часть устаревшей конвенции именования, поэтому не стесняйтесь заменить её на префикс, который больше вам подходит.

Заполнение данных после добавления нового столбца

После добавления нового столбца операция вставки не требует упоминания этого столбца; его заполняет SQL Server с помощью установленных значений по умолчанию:

SQL
Скопировать код
INSERT INTO YourTable (ExistingColumn1, ExistingColumn2) VALUES ('Value1', 'Value2');

Если новый столбец допускает null значения и при вставке вы задаете NULL, SQL Server понимает, что вы осознанно готовы к определенной степени риска и переопределит его значение на значение по умолчанию.

Визуализация

Представим вашу работу с SQL Server как путешествие на поезде 🚂. Каждый вагон (📊) – это ваши текущие данные:

Markdown
Скопировать код
🚂==📊📊📊== (Существующая таблица)

Давайте добавим сиденья (💺) для комфорта пассажиров:

SQL
Скопировать код
ALTER TABLE Train ADD NewSeats INT DEFAULT 50;

Теперь взглянем на получившийся состав:

Markdown
Скопировать код
🚂==📊📊📊==💺💺💺 (Обновлённая таблица с новым столбцом)
// "💺" означает, что новые пасажиры (записи) автоматически занимают места со значением по умолчанию `50`.

Особенности выполнения "Операций над таблицами"

Некоторые версии SQL Server (такие как 2000 и 2005) требуют использования команды GO для разделения операций:

SQL
Скопировать код
ALTER TABLE YourTable ADD NewColumn DataType;
GO
ALTER TABLE YourTable ADD CONSTRAINT DF_YourTable_NewColumn DEFAULT 'DefaultValue' FOR NewColumn;

Если вы планируете добавить ненулевой столбец, возможно, вам потребуется определить стратегию заполнения уже существующих строк:

SQL
Скопировать код
ALTER TABLE YourTable ADD NewColumn DataType NOT NULL DEFAULT 'IntermediateValue' WITH VALUES;

Важно точно определить тип данных. Это может быть, например, VARCHAR(200) или INT, в зависимости от потребностей ваших данных.

Полезные материалы

  1. ALTER TABLE (Transact-SQL) – SQL Server — Официальная документация от Microsoft.
  2. SQL Server – ADD Column with Default Value – SQL Authority Blog — Детальное руководство по применению SQL.
  3. Creating Default Constraints in SQL Server – MSSQLTips — Примеры работы с ограничениями.
  4. SQL DEFAULT Constraint – W3Schools — Простое и понятное руководство по ограничениям по умолчанию в SQL.