为什么我不能重新排序我的SQL Server列?

前端之家收集整理的这篇文章主要介绍了为什么我不能重新排序我的SQL Server列?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一张带有FK的旧桌子。我想添加一个新的列。我想把这个新的列我的主键。所以我以为我可以将该列插入第一个列,或将其插入到表的末尾,然后重新排序我的列。

sql Server Management Studio不允许我这样做。我明白我不能这样做,而且这个列顺序在sql中几乎完全不相关。

我想知道的是怎么来的…我的意思是,我可以放一列…不是添加新的一样吗?

我只是想了解发生了什么。我也很难找到文档。如果有人可以指出我的方向很好。

解决方法

您可能对 this question的答案感兴趣。

至于为什么你不能重新排列列(除了发布的SSMS特定答案之外),我不确定你会找到一个规范的答案,除了sql标准不包含编程语法这样做 – 唯一的方法重新定义表的模式(包括其列的顺序)是删除表并重新创建它。所以提供列“重新排序”的任何管理应用程序很有可能在幕后进行(例如SSMS的设计视图,如链接的问题中所指出的)。

如果有明确的原因没有提供列重新排序机制作为标准DDL的一部分,那么有更深入了解sql规范的人可能会与此相矛盾,但是我只能推测,因为查询定义了其结果集中的列的顺序,并且DBMSs根据其各自的实现来控制物理存储,逻辑列顺序基本上是无意义的,并且不保证这样的机制。

猜你在找的MsSQL相关文章