Проблема изменения порядка столбцов в таблице (SQL Server 2008) - PullRequest
4 голосов
/ 31 мая 2009

Когда я пытаюсь изменить этот список столбцов:

Nombre
Imagen
Descripcion
Activo
IdLineaProducto

в это (IdLineaProducto является первым)

IdLineaProducto
Nombre
Imagen
Descripcion
Activo

SQL Server Management Studio говорит, что нельзя сохранять изменения, потому что таблица должна быть удалена и воссоздана (на испанском ...). Я мог бы сделать это в SQL Server 2005, но не в SQL Server 2008.

То же самое происходит в других ситуациях, например, при попытке преобразовать столбец типа int без идентификатора в идентификатор. Почему так происходит? Как я могу решить это? Может быть, какая-то неправильно настроенная проблема? Какая-то новая функция в SQL Server?

Ответы [ 2 ]

4 голосов
/ 31 мая 2009

Я нашел решение этой проблемы .

Это по замыслу и может быть быстро исправлено в Management Studio снятие флажка собственности Чтобы исправить это в Management Studio, перейдите в Инструменты -> Затем перейдите на страницу дизайнера и снимите флажок «Запретить сохранение изменений» которые требуют пересоздания таблицы ".

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

1 голос
/ 31 мая 2009

Так оно и работает ... вы можете добавлять столбцы только в конец, если только вы не DROP это и CREATE это (обычно копирование данных обратно и обратно, что может помочь в IDE) , Но почему вы хотите изменить порядок? Даже если это не идеально, ваш SELECT и т. Д. Могут справиться с этим ... то есть

SELECT IdLineaProducto, Nombre, Imagen, Descripcion, Activo
FROM   TheTable
...

(редко бывает просто использовать SELECT *)


Ре IDENTITY; опять же, это фундаментально для столбца - хотя в этом случае вы можете скопировать данные, DROP столбец, и повторно ADD столбец как IDENTITY (справа), и скопировать его обратно в - но тогда у вас есть дополнительные сложности с IDENTITY INSERT и значением SEED (поэтому вы не пытаетесь получить дубликаты существующих значений идентичности).

...