Можно ли иметь поля nvarchar (max) и varbinar (max) в одной таблице - PullRequest
0 голосов
/ 15 октября 2010

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

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

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

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

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

Ответы [ 4 ]

4 голосов
/ 15 октября 2010

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

alt text

Это меньше Tools > Options..

2 голосов
/ 15 октября 2010

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

2 голосов
/ 15 октября 2010

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

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

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

alter table YourTable add newcol varbinary(max) null
0 голосов
/ 15 октября 2010

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

...