Проблема с изменением порядка столбцов в таблице (SQL Server 2008)

StackOverflow https://stackoverflow.com/questions/930713

  •  06-09-2019
  •  | 
  •  

Вопрос

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

Nombre
Imagen
Descripcion
Activo
IdLineaProducto

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

IdLineaProducto
Nombre
Imagen
Descripcion
Activo

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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


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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top