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

Сообщение об ошибке при попытке сохранения таблицы в 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 — последний просмотр: 01/03/2015 17:57:00 — редакция: 9.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
  • SQL Server 2012 Enterprise Core
  • kbtshoot kbsqlsetup sql2008relnotetools sql2008relnote kbprb kbmt KB956176 KbMtru
Отзывы и предложения