2012-03-26 4 views
37

Я создал таблицу tbl_Candidate ... но я забыл установить первичный ключ таблицы, и я сохранил его без первичного ключа ...Невозможно изменить дизайн таблицы в SQL Server 2008

В следующий раз я m собираюсь установить первичный ключ в SQL Server 2008 Express, я получаю сообщение, как будто я должен отказаться от таблицы и воссоздать, когда я собираюсь сохранить таблицу с изменениями первичного ключа ...

Это сообщение о том, что всплывает, когда я пытаюсь сохранить изменения в таблице ... !!

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

Я вошел в SQL Server с проверкой подлинности Windows, типа сервера как базы данных и имя сервера как .\SQLExpress.

Пожалуйста, дайте мне возможность исправить эту проблему или способ изменить настройки SQL Server ... пожалуйста, дайте мне указания .. спасибо ..

ответ

78

Ответ на MSDN site:

Диалоговое окно «Сохранить (не разрешено)» предупреждает вас о том, что сохранение изменений не разрешено, поскольку внесенные изменения требуют, чтобы перечисленные таблицы удалялись и воссоздавались.

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

  • Добавление нового столбца в середине таблицы
  • Удаление столбца
  • Изменение колонке допустимость пустых
  • Изменение порядок столбцов
  • Изменение типа данных столбца

EDIT 1:

Дополнительные полезные сведения из here:

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

  1. Открытая SQL Server Management Studio (SSMS).
  2. В меню «Сервис» выберите «Параметры».
  3. В навигационной панели окна «Параметры» щелкните «Дизайнеры».
  4. Установите или снимите флажок «Предотвратить сохранение изменений, требующих переопределение таблицы», а затем нажмите «ОК».

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

Риск отключения опции

«Предотвращение сохранения изменений, которые требуют таблиц воссоздания» Несмотря на то, отключив эту опцию, может помочь вам избежать повторного создания в таблице, она может также привести к изменениям являются потерял. Например, предположим, что вы включили функцию отслеживания изменений в SQL Server 2008 до изменений дорожки в таблицу. Когда вы выполняете операцию, которая вызывает таблицу, которую нужно воссоздать, появляется сообщение об ошибке , упомянутое в разделе «Проблема». Однако, если вы отключите этот параметр , существующая информация отслеживания изменений будет удалена при восстановлении таблицы . Поэтому мы рекомендуем вам не работать , отключив эту опцию.

Settings, screen shot

+1

спасибо .. sir ... – tharindlaksh

+0

спасибо, что ответим! –

+0

Спасибо Mister @pylover –

6

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

ALTER TABLE TableName 
ADD CONSTRAINT ConstraintName PRIMARY KEY(ColumnName) 
GO 

Убедитесь, что столбец первичного ключа не должны иметь нулевые значения.

Вариант 2:

вы можете изменить ваш SQL Management Options студии, как

Чтобы изменить этот параметр, в меню Сервис выберите команду Параметры, разверните Конструкторы, а затем нажмите Таблица и проектировщики баз данных , Выберите или снимите флажок Запретить сохранение изменений, которые требуют, чтобы таблица была обновлена ​​ .

+0

спасибо .. сэр ... – tharindlaksh

1

Предотвращение сохранения изменений, которые требуют таблицы воссоздания

Пяти быстрых щелчки

Prevent saving changes that require table re-creation in five clicks

  1. Инструменты
  2. Опции
  3. Конструкторы
  4. Предотвращать сохранение изменений, которые требуют таблицы воссоздания
  5. OK.

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

Дальнейшее объяснение

  • По умолчанию среде SQL Server Management Studio, не позволяет удалять таблицы, потому что, когда таблица отбрасывается свои данные утрачивается. *

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

* Ваши конкретные обстоятельства не будут иметь последствия, поскольку ваш стол пуст. Я полностью объясняю это объяснение, чтобы улучшить ваше понимание процедуры.

Смежные вопросы