Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Почему нельзя создать первичный уникальный ключ в существующей таблице.  [new]
Mikhail Tchervonenko
Member

Откуда: Münster, Germany
Сообщений: 1738
При попытке в SQL Management Studio 2008 вставить первой колонкой поле для уникального ключа студия ругается и говорит что такое изменение требует пересоздания таблицы. (другого уникального первичного ключа в таблице нет) Почему и как такое обойти?
Сорри если дурацкий вопрос, но после MySQL и Фокса непонятна проблемма.

Спасибо.
3 авг 11, 11:34    [11063447]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя создать первичный уникальный ключ в существующей таблице.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Mikhail Tchervonenko
Почему и как такое обойти?

Потому что SQL Management Studio делает это именно так
Но никто не мешает вам написать свою команду вручную
3 авг 11, 11:38    [11063478]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя создать первичный уникальный ключ в существующей таблице.  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
ALTER TABLE T ADD ID INT IDENTITY;
ALTER TABLE T ADD CONSTRAINT pkT PRIMARY KEY(ID);
Примерно как-то так...

Если IDENTITY не писать, то новую колонку надо проинициализировать уникальными значениями.
3 авг 11, 11:41    [11063498]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя создать первичный уникальный ключ в существующей таблице.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31964
Mikhail Tchervonenko
При попытке в SQL Management Studio 2008 вставить первой колонкой поле для уникального ключа студия ругается и говорит что такое изменение требует пересоздания таблицы. (другого уникального первичного ключа в таблице нет) Почему и как такое обойти?
Потому что чтобы вставить в начало кажлдой страницы данных поле, нужно заново перезалить все страницы данных.

Непонятно, чем вам пересоздание не нравится? Данных очень много и не дождётесь результата?

Mikhail Tchervonenko
Сорри если дурацкий вопрос, но после MySQL и Фокса непонятна проблемма.
Что, они действительно такое делают без пересоздания таблицы? Интересно, как это сделано...
3 авг 11, 11:41    [11063501]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя создать первичный уникальный ключ в существующей таблице.  [new]
Glory
Member

Откуда:
Сообщений: 104751
Mikhail Tchervonenko
Сорри если дурацкий вопрос, но после MySQL и Фокса непонятна проблемма.

Наверное потому, что MySQL и Фокса пересоздают таблицу молча, не информируя вас ?
3 авг 11, 11:43    [11063516]     Ответить | Цитировать Сообщить модератору
 Re: Почему нельзя создать первичный уникальный ключ в существующей таблице.  [new]
Raoul
Member

Откуда:
Сообщений: 177
Mikhail Tchervonenko
При попытке в SQL Management Studio 2008 вставить первой колонкой поле для уникального ключа студия ругается и говорит что такое изменение требует пересоздания таблицы. (другого уникального первичного ключа в таблице нет) Почему и как такое обойти?

Tools > Options > Designers > Table and Database Designers
снять галку "Prevent saving changes that require table re-creation"
3 авг 11, 17:50    [11066794]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить