Можно ли иметь поля nvarchar(max) и varbinar(max) в одной таблице

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

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

Когда я пытаюсь добавить новое поле типа varbinary(max), я получаю сообщение об ошибке: "Сохранение изменений не разрешено. Внесенное вами изменение требует удаления и повторного создания следующих таблиц".

Можно ли иметь поля nvarchar(max) и varbinar(max) в одной таблице?

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

4 ответа

Решение

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

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

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

alter table YourTable add newcol varbinary(max) null

Да, конечно - вы, вероятно, просто включили эту новую опцию "безопасности" в SSMS (она включена по умолчанию):

альтернативный текст

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

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

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

Другие вопросы по тегам