В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Сообщение об ошибке при попытке сохранения таблицы в SQL Server: "Сохранение изменений не разрешено"

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

Эта статья на английском языке: 956176
Проблема
Когда вы используете язык определения данных (DDL) для изменения таблицы, а затем пытаетесь сохранить эту таблицу в Microsoft SQL Server 2008, может появиться следующее сообщение:
Сохранение изменений не допускается. Сделанные изменения требуют следующие таблицы будет удалена и создана заново. Одно внесены изменения в таблицу, которая не может быть создан повторно или включен параметр Запретить сохранение изменений, требуется заново создать таблицу.
Причина
Эта проблема возникает когда включен параметр Запретить сохранение изменений, требующих повторного создания таблицы и вы делаете одно или несколько перечисленных ниже изменений:
  • Вы меняете параметр Разрешить значения NULL для столбца.
  • Вы меняете порядок столбцов в таблице.
  • Вы меняете тип данных столбца.
  • Вы добавляете новый столбец.
При изменении таблицы с изменением структуры метаданных таблицы, а затем сохранение таблицы таблицу необходимо создать заново на основе этих изменений. Это может привести к потере метаданных и прямые потери данных во время повторного создания таблицы. Если включен параметр Запретить сохранение изменений, требующих повторного создания таблицы в разделе Конструктор окна Параметры среда SQL Server Management Studio (SSMS) , появляется сообщение об ошибке, описанное в разделе «Проблема».
Временное решение
Чтобы обойти эту проблему, используйте инструкции Transact-SQL для внесения изменений в структуру метаданных таблицы. Дополнительную информацию можно найти в следующих разделах электронной документации по SQL Server:

http://msdn.microsoft.com/en-us/library/ms190273.aspx

Например для изменения столбца типа datetime в таблице MyDate с именем MyTable на прием значений NULL можно использовать:

alter table MyTable alter column MyDate7 datetime NULL

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

Отключение параметра «Запретить сохранение изменений, требующих повторного создания таблицы» риск

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

Чтобы определить, включена ли функция отслеживания изменений для таблицы, выполните следующие действия.
  1. В среде SQL Server Management Studio найдите таблицу в Обозревателе объектов.
  2. Щелкните правой кнопкой мыши таблицу и выберите команду Свойства.
  3. В диалоговом окне Свойства таблицы выберите Отслеживания изменений.
Если значение Отслеживания изменений элемента имеет значение True, этот параметр включен для таблицы. Если значение равно False, то этот параметр недоступен.

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

Действия по воспроизведению проблемы

  1. Создайте таблицу, которая содержит первичный ключ в средстве конструктора таблиц в среде SQL Server Management Studio.
  2. Щелкните правой кнопкой мыши базу данных, содержащую эту таблицу и выберите команду Свойства.
  3. В диалоговом окне Свойства базы данных нажмите кнопку Отслеживания изменений.
  4. Задайте значение True для элемента Отслеживание изменений и нажмите кнопку ОК.
  5. Щелкните правой кнопкой мыши таблицу и выберите команду Свойства.
  6. В диалоговом окне Свойства таблицы выберите Отслеживания изменений.
  7. Задайте значение True для элемента Отслеживание изменений и нажмите кнопку ОК.
  8. В меню Сервис выберите команду Параметры.
  9. В диалоговом окне Параметры выберите конструкторы.
  10. Установите флажок Запретить сохранение изменений, требующих повторного создания таблицы и нажмите кнопку ОК.
  11. Измените параметр Разрешить значения NULL для существующего столбца в средстве конструктора таблиц.
  12. Попробуйте сохранить изменения в таблицу.
sqlsvr12 sqlsvr2008 «SQL Server 2008 Сервис» SQL2008RelNoteTools «изменить отслеживания»

Свойства

Номер статьи: 956176 — последний просмотр: 07/03/2016 19:34:00 — редакция: 12.0

Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Express with Advanced Services, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Express with Advanced Services, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Standard Edition for Small Business, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Enterprise Core

  • kbtshoot kbsqlsetup sql2008relnotetools sql2008relnote kbprb kbmt KB956176 KbMtru
Отзывы и предложения