Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/130.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脚本表,但保持表与数据的顺序_Sql_Sql Server - Fatal编程技术网

SQL脚本表,但保持表与数据的顺序

SQL脚本表,但保持表与数据的顺序,sql,sql-server,Sql,Sql Server,有人知道Microsoft SQL中有什么方法可以修改表吗 通过脚本,但保持表的顺序 例如: 表1: :Column6 :Column5 :Column4 :Column3 :Column2 :Column1 假设我想加上:第7列,但我希望顺序仍然是7,6,5,4,3,2,1 我知道有可能放下桌子,重新开始 或者手动进入设计器并添加到第7列中,当在第6列上方插入第7列时,它将保持其有序 我想通过一个升级客户的脚本来实现这一点,订单很重要,因为当手动分析数据时,它使其在X订单中已存在多年的情况下

有人知道Microsoft SQL中有什么方法可以修改表吗 通过脚本,但保持表的顺序

例如:

表1:

:Column6
:Column5
:Column4
:Column3
:Column2
:Column1
假设我想加上:第7列,但我希望顺序仍然是7,6,5,4,3,2,1

我知道有可能放下桌子,重新开始 或者手动进入设计器并添加到第7列中,当在第6列上方插入第7列时,它将保持其有序

我想通过一个升级客户的脚本来实现这一点,订单很重要,因为当手动分析数据时,它使其在X订单中已存在多年的情况下变得容易。 设计器非常适合在列中添加内容,但会导致许多内容被遗忘或键入错误


好奇是否还有其他人遇到过类似的情况,以及他们是如何解决的。

只需添加列,然后使用视图按您想要的顺序获取列,怎么样

alter table t add column7 . . .;

create view v_t as
    select column7, column6, column5, column4, column3, column2, column1
    from t;

这甚至是一个可更新的视图,因此您可以
在其中插入
列,而无需指定列(我反对),或者使用
批量插入

如何添加列,然后使用视图按您想要的顺序获取列

alter table t add column7 . . .;

create view v_t as
    select column7, column6, column5, column4, column3, column2, column1
    from t;

这甚至是一个可更新的视图,因此您可以
在其中插入
列,而无需指定列(我反对),或者使用
批量插入

列排序在MSSQL中不应该真正成为一个问题,除非您将列排序用于非常特定的用例。如果在insert或select语句中用于类似“insert”的目的,则始终可以修复列顺序。作为参考,我相信这个问题之前已经被问过了,这里是原始堆栈溢出问题的链接,我将在这里滚动浏览一些答案


在MSSQL中,列排序不应该真正成为一个问题,除非您将列排序用于非常特定的用例。如果在insert或select语句中用于类似“insert”的目的,则始终可以修复列顺序。作为参考,我相信这个问题之前已经被问过了,这里是原始堆栈溢出问题的链接,我将在这里滚动浏览一些答案


无论何时选择要查看的列,都可以根据需要更改顺序。尝试更改数据库中的顺序不是一个好主意,对性能不利,这样做可能会导致删除/重新创建整个表(在幕后)。只需按您希望的顺序选择列即可。@Brad理解,这将是正常情况下的解决方案,但当使用附加了10年、拥有120多列的现有数据库时,这并不像人们想象的那么容易。我试图在已经很糟糕的情况下消除不断的错误。但我唯一要坚持的是列的显示顺序。简短的回答是——你不能。要更改表中列的顺序,需要完全按照您已经知道的操作—以某种方式重新创建表。要做到这一点,意味着您必须处理该表上的依赖项。这是一个复杂的脚本,效率不高。请更好地解释为什么列顺序实际上很重要。每次选择要查看的列时,您都可以根据需要更改顺序。尝试更改数据库中的顺序不是一个好主意,对性能不利,这样做可能会导致删除/重新创建整个表(在幕后)。只需按您希望的顺序选择列即可。@Brad理解,这将是正常情况下的解决方案,但当使用附加了10年、拥有120多列的现有数据库时,这并不像人们想象的那么容易。我试图在已经很糟糕的情况下消除不断的错误。但我唯一要坚持的是列的显示顺序。简短的回答是——你不能。要更改表中列的顺序,需要完全按照您已经知道的操作—以某种方式重新创建表。要做到这一点,意味着您必须处理该表上的依赖项。这是一个复杂的脚本,效率不高。请更好地解释为什么列顺序实际上很重要