首页 / 知识
关于SQL Server:我可以在逻辑上对表中的列进行重新排序吗?
2023-04-11 15:18:00

Can I logically reorder columns in a table?如果要在Microsoft SQL Server中的表中添加一列,是否可以控制该列在查询中的逻辑显示位置? 我不想弄乱磁盘上列的物理布局,但我想在可能的情况下在逻辑上将列分组在一起,以便SQL Server Management Studio之类的工具以方便的方式列出表的内容。 我知道我可以通过进入表的"设计"模式并拖动列的顺序来通过SQL Management Studio执行此操作,但是我希望能够在原始SQL中执行此操作,以便可以执行排序 从命令行编写脚本。 如果不创建新表,则无法以编程方式(以一种安全的方式)执行此操作。 提交重新排序时,企业管理器的作用是创建一个新表,移动数据,然后删除旧表并将新表重命名为现有名称。 如果希望按特定的顺序/分组排列列而不改变其物理顺序,则可以创建所需的视图。 我认为这里每个人都缺少的是,尽管不是每个人都必须处理在整个国家和世界范围内安装的同一软件系统的10、20或1000个实例……设计商业销售软件的我们中的每个人都必须这样做。结果,随着时间的推移,我们扩展了系统,通过在需要新功能时添加字段来扩展表,并且当确定这些字段确实属于现有表时,因此,经过了十多年的扩展,增长,添加字段等到表格...。然后不得不使用这些表格,从设计到支持,有时甚至是挖掘原始数据/进行故障排除以调试新的功能错误....令人难以置信的是,没有所需的主要信息请参阅第一个字段中的字段,当您的表可能具有30-40-50甚至90个字段,并且在严格归一化的数据库中是。 出于这个确切的原因,我经常希望我可以这样做。但是缺少精确执行SQL的功能,按照我想要的方式为新表构建创建脚本,向其中写入插入,然后从现有表中删除所有现有约束,关系,键,索引等,然后重命名将"新"表恢复为旧名称,然后读取所有这些键,关系,索引等...。 不仅繁琐,耗时,而且……再过五年,将需要再次发生……。 它非常值得进行大量工作,但是重点是……这不是我们最后一次需要此功能,因为我们的系统将继续增长,扩展并以混乱的顺序驱动领域需要/设计增加。 大多数开发人员从为单个公司或非常特定的硬盒市场提供服务的单一系统角度考虑。 市场上那些"现成的"但有进取心的设计师和开发领导者将总是不得不解决这个问题,一遍又一遍.....如果有人提出的话,她会喜欢一个创造性的解决方案。这可以轻松地每周为我的公司节省十几个小时,而不必滚动或记住源数据表中"那个"字段的位置。 如果我理解您的问题,您想影响现有查询中返回的第一,第二,第三列,对吧?
如果所有查询都用
如果您的查询是用 当Management Studio执行此操作时,它将创建一个临时表,复制所有内容,删除原始表并重命名该临时表。没有简单的等效T-SQL语句。 如果您不愿意这样做,则始终可以按所需顺序创建带有列的表格视图,并使用该视图? 编辑:殴打! 按钮栏,默认情况下) 该脚本真正要做的就是创建具有所需列顺序的第二个表表,将所有数据复制到其中,删除原始表,然后重命名辅助表以代替它。尽管确实需要部署脚本,但这确实节省了您自己编写代码的麻烦。 有一种方法,但这只是查询本身的暂时方法。例如,
假设您有5张桌子。 名字,姓氏,电话号码,电子邮件和Member_ID 您希望它列出其ID,然后是"姓氏","名字","电话"和"电子邮件"。 您可以按照"选择"进行操作。
除此之外,如果由于某种原因,您只希望姓氏显示在名字之前,则可以按照以下步骤进行操作:
您唯一要确定的是,如果要使用Where或OrderBy,则需要将OrderBy或Where函数表示为Table.Column。 例:
我想这会有所帮助,因为我需要自己做。 在不重新创建整个表的情况下,无法更改列的顺序。如果只有几个数据库实例,则可以为此使用SSMS(选择表并单击"设计")。
如果您有太多实例无法进行手动处理,则应尝试以下脚本: 可以通过直接修改系统表来使用SQL来完成。例如,看这里: 更改表-在两者之间添加新列 但是,除非绝对必要,否则我不建议您使用系统表。 |
最新内容
相关内容
python怎么显示日期
python怎么显示日期,时间,单位,管理,培训,浮点,标准,项目,日期,格式,时钟,Python程序能用很多方式处理日期和时间,转换日期格式是一个常见的功python如何实现对Python中列表的排
python如何实现对Python中列表的排序?,培训,工作,实例,方法,关键字,对象,函数,以上,列表,表达式,对List进行排序,Python提供了两个方法方法1.python输入三个数字从小到大排序
python输入三个数字从小到大排序,数字,培训,整数,从小到大,错误,继续,方法,提示,用户,函数,python输入三个数字从小到大排序1、说明使用list.python归并排序的基本思路
python归并排序的基本思路,培训,数组,基本思路,两个,分解,表示,列表,指针,归纳,序列,python归并排序的基本思路基本思路归纳排序是采用分治法python归并排序和快速排序比较
python归并排序和快速排序比较,数据,预期,时间,位置,培训,序列,复杂度,算法,分界,空间,python归并排序和快速排序比较1、在预期情况下的快速python快速排序的运作过程
python快速排序的运作过程,位置,培训,底部,基准,数列,元素,分区,数组,过程,基准点,python快速排序的运作过程运作过程1、从数列中挑出一个元python列表排序的两种方式
python列表排序的两种方式,培训,列表,方式,函数,顺序,参数,排列,元素,以上,方法,python列表排序的两种方式1、使用sort()永久排序列表。用sorpython位置参数是什么
python位置参数是什么,位置,电脑,培训,环境,系统,参数,函数,字符串,例子,数量,python位置参数是什么本文教程操作环境:windows7系统、Python3.关于搜索:grep一个文件,但显示几个周
关于搜索:grep一个文件,但显示几个周围的行?,关于搜索:grep一个文件,但显示几个周围的行?,五行,显示,字符串,这一点,grep a file, but show关于svn:学习并很好地学习版本控制
关于svn:学习并很好地学习版本控制,关于svn:学习并很好地学习版本控制,学习,版本控制系统,但我,使用过,Learning Version Control, and关于版本控制:如何撤消git reset &#
关于版本控制:如何撤消git reset hard HEAD~1?,关于版本控制:如何撤消git reset hard HEAD~1?,撤消,命令,写了,我已经,How can I undo gi关于版本控制:DVCS选择-Windows有什
关于版本控制:DVCS选择-Windows有什么用?,关于版本控制:DVCS选择-Windows有什么用?,项目,版本控制系统,支持,我想,DVCS Choices - What'