当我尝试更改此列列表时:
Nombre
Imagen
Descripcion
Activo
IdLineaProducto
进入此(IdLineaProducto是第一个)
IdLineaProducto
Nombre
Imagen
Descripcion
Activo
SQL Server Management Studio表示不允许保存更改,因为必须删除并重新创建表(以西班牙文...)。我可以在SQL Server 2005中执行此操作,但不能在SQL Server 2008中执行此操作。
在其他情况下也会发生同样的情况,例如尝试将int非标识列转换为标识。为什么会这样?我该如何解决这个问题?也许是一些配置错误的问题? SQL Server中的一些新功能?
答案 0 :(得分:4)
这是设计上的,可以很快 已在Management Studio中修复 取消检查财产。解决这个问题 管理工作室,转到工具 - > 选项然后转到Designer页面 并取消选中“防止保存更改 需要重新创建表格“。
请注意它可能有undesired consequences,就像丢失与此相关的其他表中的数据一样。
答案 1 :(得分:1)
这就是它的工作方式......你只能在最后添加列,除非你DROP
它和CREATE
它(通常将数据复制出来并重新输入,这是IDE可能有帮助)。但为什么你想改变订单?即使它不理想,你的SELECT
等也可以处理这个......即
SELECT IdLineaProducto, Nombre, Imagen, Descripcion, Activo
FROM TheTable
...
(仅使用SELECT *
)
重新IDENTITY
;再次,这是该列的基础 - 尽管在这种情况下,您可以复制数据,DROP
列,并重新ADD
列为IDENTITY
(在右侧) ),并将其复制回来 - 但是你有IDENTITY INSERT
和SEED
值的额外复杂性(所以你不要试图获得现有身份值的重复)。