Добавляем с дефолтным значением колонку в SQL Server 2000/2005
Быстрый ответ
Чтобы добавить столбец с значением по умолчанию
в таблицу SQL Server, можно использовать следующую команду:
ALTER TABLE YourTable ADD NewColumn DataType DEFAULT 'DefaultValue';
Следует заменить YourTable
на имя своей таблицы, NewColumn
– на название нового столбца, DataType
– на тип данных, подходящий вашим потребностям, а 'DefaultValue'
– на ваше значение по умолчанию. SQL Server сам выполнит данный запрос!
Использование столбцов со значениями, отличными от NULL
SQL Server автоматически заполняет добавленные не null столбцы значением по умолчанию. Если же вы хотите задать значение по умолчанию для столбца, изначально допускающего равенство null, не забудьте включить операцию WITH VALUES
:
ALTER TABLE YourTable ADD NewColumn DataType DEFAULT 'DefaultValue' WITH VALUES;
Именованные ограничения для поддержания работоспособности системы
Рекомендуется задавать ваши ограничения со специфическими именами, это поможет вам их изменять или удалять в процессе работы:
ALTER TABLE YourTable ADD NewColumn DataType
CONSTRAINT DF_YourTable_NewColumn DEFAULT 'DefaultValue';
DF_
– это часть устаревшей конвенции именования, поэтому не стесняйтесь заменить её на префикс, который больше вам подходит.
Заполнение данных после добавления нового столбца
После добавления нового столбца операция вставки не требует упоминания этого столбца; его заполняет SQL Server с помощью установленных значений по умолчанию:
INSERT INTO YourTable (ExistingColumn1, ExistingColumn2) VALUES ('Value1', 'Value2');
Если новый столбец допускает null значения и при вставке вы задаете NULL
, SQL Server понимает, что вы осознанно готовы к определенной степени риска и переопределит его значение на значение по умолчанию.
Визуализация
Представим вашу работу с SQL Server как путешествие на поезде 🚂. Каждый вагон (📊) – это ваши текущие данные:
🚂==📊📊📊== (Существующая таблица)
Давайте добавим сиденья (💺) для комфорта пассажиров:
ALTER TABLE Train ADD NewSeats INT DEFAULT 50;
Теперь взглянем на получившийся состав:
🚂==📊📊📊==💺💺💺 (Обновлённая таблица с новым столбцом)
// "💺" означает, что новые пасажиры (записи) автоматически занимают места со значением по умолчанию `50`.
Особенности выполнения "Операций над таблицами"
Некоторые версии SQL Server (такие как 2000 и 2005) требуют использования команды GO
для разделения операций:
ALTER TABLE YourTable ADD NewColumn DataType;
GO
ALTER TABLE YourTable ADD CONSTRAINT DF_YourTable_NewColumn DEFAULT 'DefaultValue' FOR NewColumn;
Если вы планируете добавить ненулевой столбец, возможно, вам потребуется определить стратегию заполнения уже существующих строк:
ALTER TABLE YourTable ADD NewColumn DataType NOT NULL DEFAULT 'IntermediateValue' WITH VALUES;
Важно точно определить тип данных. Это может быть, например, VARCHAR(200)
или INT
, в зависимости от потребностей ваших данных.
Полезные материалы
- ALTER TABLE (Transact-SQL) – SQL Server — Официальная документация от Microsoft.
- SQL Server – ADD Column with Default Value – SQL Authority Blog — Детальное руководство по применению SQL.
- Creating Default Constraints in SQL Server – MSSQLTips — Примеры работы с ограничениями.
- SQL DEFAULT Constraint – W3Schools — Простое и понятное руководство по ограничениям по умолчанию в SQL.