Sql 2008 не позволяет мне вносить изменения в таблицу - PullRequest
1 голос
/ 12 ноября 2008

По какой-то причине SQL Server 2008 не позволяет мне добавлять столбцы в существующую таблицу.

Кстати, таблица пуста.

Есть ли параметр, который запрещает изменение таблиц в SQL 2008?

Ответы [ 2 ]

4 голосов
/ 12 февраля 2012

Когда вы используете SSMS для разработки таблицы в базе данных, а затем пытаетесь внести изменения в структуру таблицы - например, добавить столбец, который не находится в конце - таблицу необходимо создать заново. По умолчанию вы не можете сохранять изменения, требующие восстановления.

Вы можете:

  1. Перейти в Инструменты | Варианты | Дизайнеры | Таблицы и конструкторы и снимите флажок Запретить сохранение изменений, для которых требуется пересоздание таблицы .
  2. Запишите изменения и запустите их самостоятельно.

ПРЕДУПРЕЖДЕНИЕ

Имейте в виду, что причина, по которой это установлено по умолчанию, состоит в том, что воссоздание вашей таблицы может быть чрезвычайно вредным в производственной базе данных, и есть крайние случаи, когда автоматический сценарий может что-то сделать неправильно. Что если бы у вас была действительно сложная многораздельная таблица на несколько групп файлов с миллиардами строк? Предполагая, что на самом деле у вас есть огромное пространство, необходимое для двух копий таблицы и абсолютно гигантского журнала транзакций, это приведет к сбою всей вашей базы данных на несколько часов и, возможно, в любом случае испортит окончательный результат. Или, что если ваша новая таблица не может быть вставлена ​​в (как в случае добавления ненулевого столбца без значения по умолчанию) - тогда сценарий может не выполнить шаг вставки без правильного восстановления, и вы получите пустой таблица.

Идея: сначала сделай резервную копию!

Не делайте ничего, если не понимаете рисков.

Пример потерянных данных

Вот прекрасный пример потери данных при использовании этой опции. Не говори, что я тебя не предупреждал.

4 голосов
/ 12 ноября 2008

Да, вы можете изменить настройку, чтобы остановить это. Подробности здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...