#sql-server #sql-server-2008
#sql-сервер #sql-сервер-2008 #sql-server-2008
Вопрос:
Я использую базу данных SQL Server 2008.
Мой проект находится в прямом эфире. Теперь я хочу добавить новый столбец в свою employee
таблицу.
Как я могу это сделать?
Пожалуйста, подскажите мне идею
Спасибо.
Ответ №1:
Здесь есть над чем подумать. Просто с головы до ног:
- Убедитесь, что на все, что обращается к этой таблице, это не окажет негативного влияния. Если что-то используется
SELECT *
, это, скорее всего, приведет к сбою. Аналогично, все, что выбирается из или вставляется в базу данных по индексу столбца, необходимо будет изменить - Для изменения столбца может потребоваться удаление / воссоздание таблицы — убедитесь, что никто не будет обращаться к таблице, когда вы вносите изменения. Сюда входят запланированные задания, триггеры и т.д.
- Убедитесь, что ваши резервные копии обновлены. Если что-то пойдет не так, вы хотите иметь возможность вернуться туда, где вы были.
В целом, я бы сказал, что вам лучше всего — если доступна такая опция — выполнить эти шаги в процессе разработки, а затем в среде контроля качества, чтобы убедиться, что вы как можно более уверены во всем, на что повлияет изменение, чтобы вы могли внести необходимые коррективы.
Как только вы будете уверены в том, что делаете, ALTER TABLE
выберите нужную команду, и у Microsoft есть множество документации о том, как ее использовать. Кроме того, среда SQL Server Management Studio предоставляет графический интерфейс для внесения изменений.
Комментарии:
1. моя база данных находится в режиме реального времени, я не знаю, кто использует таблицу. в то время, когда я хочу добавить новый столбец…. пожалуйста, подскажите мне вашу идею?
2. Если вам нужно изменить таблицу, и вы не знаете, что зависит от указанной таблицы… остановка. У вас серьезная проблема, выходящая за рамки того, что вы исправляете, добавляя столбец. Просмотрите системную документацию и найдите все возможные ссылки на вашу таблицу. В противном случае (возможно, даже с этим) убедитесь, что ваш менеджер / ведущий / кто угодно знает, что это потенциальное критическое изменение в неизвестном количестве других систем — и из-за этого следует ожидать потока ошибок.
Ответ №2:
При добавлении столбца в таблицу с данными столбец должен иметь значение NULL или вам нужно значение по умолчанию
ALTER TABLE myTable ADD AnotherColumn int NULL
или
ALTER TABLE myTable
ADD AnotherColumn int NOT NULL
CONSTRAINT DF_myTable _AnotherColumn DEFAULT 0
Ответ №3:
Вы используете alter table
alter table YourTable add NewColumn int