Вопрос

Я использую SQL Server 2008 R2.

У меня есть таблица, которая имеет несколько полей, включая поле Nvarchar (Max).

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

Можно ли иметь Nvarchar (Max) и Varbinar (Max) поля в том же таблице?

Это единственный способ исправить это, создать новую таблицу с новой структурой и передавать данные?

Это было полезно?

Решение

Да, это возможно.

Если вы видите это сообщение, вы, должно быть, пытались вставить новый столбец в середину существующих в дизайнере SSMS Table. Добавьте его на конец существующих столбцов, то таблица не должна быть полностью восстановлена.

Или просто выполнить

alter table YourTable add newcol varbinary(max) null

Другие советы

Да, конечно, - у вас, вероятно, просто есть эта новая опция «Безопасность» в SSMS все еще включена (по умолчанию он по умолчанию):

alt text

Это под Tools > Options ....

Идти к Tools | Options > Designers И снимите флажок «Предотвратить сохранение изменений, которые требуют повторного создания таблицы»

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top