Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 更改表中的列顺序时出现问题(SQL Server 2008)_Sql Server_Ddl - Fatal编程技术网

Sql server 更改表中的列顺序时出现问题(SQL Server 2008)

Sql server 更改表中的列顺序时出现问题(SQL Server 2008),sql-server,ddl,Sql Server,Ddl,当我尝试更改此列列表时: Nombre Imagen Descripcion Activo IdLineaProducto 在这方面(IdLineaProducto是第一个) SQL Server Management Studio表示不允许保存更改,因为必须删除并重新创建表(西班牙语…)。我可以在SQLServer2005中这样做,但不能在SQLServer2008中这样做 在其他情况下也会发生同样的情况,例如尝试将int非标识列转换为标识列。为什么会这样?我如何解决这个问题?也许是一些配置

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

Nombre
Imagen
Descripcion
Activo
IdLineaProducto
在这方面(IdLineaProducto是第一个)

SQL Server Management Studio表示不允许保存更改,因为必须删除并重新创建表(西班牙语…)。我可以在SQLServer2005中这样做,但不能在SQLServer2008中这样做


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

这正是它的工作方式。。。您只能在末尾添加列,除非您
删除它并
创建它(通常将数据复制出并复制回,IDE可能会对此有所帮助)。但是你为什么要改变顺序呢?即使不理想,您的
SELECT
etc也可以处理此问题。。。i、 e

SELECT IdLineaProducto, Nombre, Imagen, Descripcion, Activo
FROM   TheTable
...
(仅仅使用
SELECT*
很少是个好主意)


重新设置
标识
;同样,这是列的基础-虽然在本例中,您可以将数据复制出来,
删除列,然后将列重新添加为
标识(在右侧),然后将其复制回-但是,这样会使
标识插入
种子
值更加复杂(这样您就不会试图获取现有标识值的副本)。

我找到了

这是经过设计的,可以很快实现 在管理工作室中通过 取消选中属性。若要在中修复此问题 管理工作室,转到工具-> 选项,然后转到设计器页面 并取消选中“防止保存更改” 这需要重新创建表”


请注意,它可能会丢失与此相关的其他表中的数据。

是的,你是对的。但我过去常常以某种逻辑顺序看到数据库列,特别是当表有许多列时。此外,我说的是使用设计器,而不是TSQL代码。当我使用设计器时,我会收到这些消息。接受你的回答。看好像你回答了自己的问题。我想知道为什么SQL2008不可能,因为它是以前的版本。+1
SELECT IdLineaProducto, Nombre, Imagen, Descripcion, Activo
FROM   TheTable
...