Почему изменение столбца не разрешено с помощью запроса, но это легко сделать, это проводник сервера - PullRequest
2 голосов
/ 16 ноября 2011

У меня возник вопрос, т. Е. Когда я пытался изменить тип данных таблицы по запросу или путем непосредственного изменения типа данных, я использовал, чтобы получить некоторые ошибки, утверждающие, что это не может быть сделано.Но где, как будто я открываю ту же таблицу в server explorer из visual studio и изменяю тип данных, это было легко сделано без каких-либо ошибок.

Я пытался изменить primary key, который является foreign key для некоторых таблиц с типом данных int до varchar с использованием Management Studio это выдает мне некоторые ошибки.

Но то же самое, когда я сделал через Server explorer из Visual Studio, это было сделано вдоля.

Может ли кто-нибудь сказать, в чем разница

Ответы [ 3 ]

3 голосов
/ 16 ноября 2011

Я думаю, что у меня была эта проблема (по крайней мере, с SQL Server 2008):

  • Взгляните на Tools->Options->Designers.
  • снимите флажок "Предотвратить сохранение изменений, которые требуют повторной таблицы-creation "и попробуйте еще раз.

Вы можете увидеть больше информации здесь о том, когда это происходит, если опция отмечена.

2 голосов
/ 16 ноября 2011

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

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

2 голосов
/ 16 ноября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...