2010-01-25 2 views
0

Так что я пытаюсь сделать то, что, как я думал, было бы простым. У меня есть таблица в БД под названием «Изображения». Свойство «Описание» имеет тип nvarchar (50). Я просто хочу сделать это nvarchar (250). Каждый раз, когда я пытаюсь, он говорит, что он не может сэкономить, потому что некоторые таблицы нужно будет обновить. Я не могу просто удалить его (я думаю), потому что там уже хранятся данные, и я не могу его потерять.Изменение размера данных атрибутов из таблицы в SQL Server

EDIT ::

Точное сообщение об ошибке

«Сохранение изменений не допускается. В сделанные вами изменения требуют, следующих таблиц, чтобы быть отброшены и воссоздано. Вы должны либо сделанный Изменения в таблице, которая не может быть , заново созданная или активированная опция Предотвратите сохранение изменений, которые требуют таблицы, которую нужно воссоздать ».

Должен ли я просто отключить «Запретить сохранение изменений, требующих повторного создания таблицы», и сохранить их там.

+1

Пожалуйста, сообщите точное сообщение об ошибке – HLGEM

+0

Обновлено в моем OP – Justen

ответ

2
+0

Я не совсем понимаю. Я не уверен, что такое отслеживание, но допустим, что я просто отключил эту безопасность, когда я изменяю тип данных одного из столбцов, могу ли я потерять все данные, связанные с этим? В основном он удаляет таблицу и все содержащиеся в ней данные, а затем воссоздает ее? – Justen

+0

Вы не потеряете никаких данных. Лучший способ увидеть, что происходит, - внести некоторые изменения в конструктор таблиц, щелкнуть правой кнопкой мыши и выбрать «Сгенерировать сценарий изменений». Если вы внесли незначительные изменения в таблицу, вы увидите простую «таблицу изменений» или что-то еще. Для более сложных изменений вы увидите скрипт, который создает временную таблицу, загружает в нее все данные из существующей таблицы, удаляет существующую таблицу, создает новую таблицу замены с новой структурой и затем вставляет данные из temp в новую таблицу. – Ray

+0

Хорошо круто. Я попробую работать в понедельник и вернусь к комментарию/отметке в качестве ответа. – Justen

0

Есть ли у вас таблицы, ссылающиеся на столбец «Описание»? Это помешает вам изменить тип и длину данных.

+0

Нет, столбец «Описание» нигде не является FK. – Justen

0

вы делали это с помощью графического интерфейса SSMS или вы были запустить сценарий, используя изменить таблицу, чтобы сделать изменения? Если вы сделали это через дизайнера, я считаю, что он создает другую таблицу, отбрасывает оригинал и переименовывает новую таблицу. Если эта таблица находится в отношениях PK/FK. он не может отбросить стол. Никогда не делайте изменения таблицы, кроме как с помощью скрипта. Вам также нужны эти, чтобы правильно поставить их в исходный контроль.

+0

Я пытался сделать это в представлении дизайна. Если вы щелкните правой кнопкой мыши на таблице в MS SQL Server и выберите дизайн, и он отобразит все столбцы для этой таблицы и их тип данных. В таблице есть столбец, который является PK, а другой - FK. Не уверен, как сделать скрипт для изменения размера – Justen