当我尝试更改此列列表时:

Nombre
Imagen
Descripcion
Activo
IdLineaProducto

进入这个(IdLineaProducto是第一个)

IdLineaProducto
Nombre
Imagen
Descripcion
Activo

SQL Server Management Studio 表示不允许保存更改,因为必须删除并重新创建表(西班牙语...)。我可以在 SQL Server 2005 中执行此操作,但不能在 SQL Server 2008 中执行此操作。

在其他情况下也会发生同样的情况,例如尝试将 int 非身份列转换为身份列。为什么会出现这种情况呢?我该如何解决这个问题?也许是一些配置错误的问题?SQL Server 中的一些新功能?

有帮助吗?

解决方案

我找到了 这个问题的解决方案.

这是通过设计,可以通过取消选中的属性来快速固定在管理工作室中。要在管理工作室中解决此问题,请转到工具 - >选项,然后转到Designer页面,然后取消选中“防止需要表重新创建的更改”。

请注意,它可能有 不良后果, ,就像丢失与此相关的其他表中的数据一样。

其他提示

这就是它的工作方式......你只能添加列到最后,除非你DROPCREATE它(通常是复制数据并回,其中IDE可能会有所帮助)。但是的为什么的你想改变顺序?即使是不理想,你SELECT等可以处理这个...即。

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

(它是很少只使用SELECT *一个好主意)


的Re IDENTITY;再次,这是列根本 - 虽然在这种情况下,你可以在列中的数据复制出来,DROP列,并重新ADDIDENTITY(右手边),并在复制回来 - 但你必须额外的并发症IDENTITY INSERTSEED值(这样你就不会试图让现有的标识值的重复)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top