Можно ли иметь Nvarchar (Max) и поля Varbinar (Max) в одной таблице
-
30-09-2019 - |
Вопрос
Я использую SQL Server 2008 R2.
У меня есть таблица, которая имеет несколько полей, включая поле Nvarchar (Max).
Когда я пытаюсь добавить новое поле Varbinary (MAX), я получаю сообщение об ошибке: «Сохранение изменений не допускается. Изменение, которое вы сделали, требует следующих таблиц, которые должны быть опущены и воссозданы».
Можно ли иметь Nvarchar (Max) и Varbinar (Max) поля в том же таблице?
Это единственный способ исправить это, создать новую таблицу с новой структурой и передавать данные?
Решение
Да, это возможно.
Если вы видите это сообщение, вы, должно быть, пытались вставить новый столбец в середину существующих в дизайнере SSMS Table. Добавьте его на конец существующих столбцов, то таблица не должна быть полностью восстановлена.
Или просто выполнить
alter table YourTable add newcol varbinary(max) null
Другие советы
Да, конечно, - у вас, вероятно, просто есть эта новая опция «Безопасность» в SSMS все еще включена (по умолчанию он по умолчанию):
Это под Tools > Options
....
Идти к Tools | Options > Designers
И снимите флажок «Предотвратить сохранение изменений, которые требуют повторного создания таблицы»
SQL Server не позволяет вам развивать таблицу таким образом, потому что он не может модифицировать хранилище для существующей таблицы динамически. Если вы хотите сделать это, вы должны создать новую таблицу с новой схемой и заполнить его с данными из оригинальной таблицы.