通过SSMS对SQL Azure表列进行排序

7
我知道你可以进入SQL Server Management Studios中表的设计视图并按照设计视图中的顺序重新排列列,但是在SQL Azure中这是不可能的,因为该选项被禁用。有没有一种方法可以修改SQL Azure表,以便您可以按照设计视图中的顺序重新排列它们的列?
在过去几个月中,我一直在运行多个数据库升级以支持新需求,并且想要重新排列列的方式,使其更易于阅读,例如将主键排在首位,其次是外键,然后是普通列,并以添加者,修改者字段结束。这纯粹是为了使表在管理时更具可读性。
3个回答

0
另一个选择是:我使用SQL Delta将我的数据库更改从开发数据库传播到Azure数据库。因此,在这种情况下,我只需在本地使用SSMS GUI更改列顺序,然后SQL Delta将为我执行createnew>copytonew>dropold,以及其他本地更改。(在项目选项中,我设置了保留列顺序=是。)

0

我在使用Azure SQL数据库时也遇到了同样的问题,基本上我的ALTER更改视图后,当我从视图中进行SELECT *操作时,并没有生效,或者列标题与列值混淆。

为了解决这个问题,我删除了该视图并重新创建了它。这样做有效。


0

只需对表运行脚本。这是一些伪代码,但你应该能理解。

CREATE TABLE TableWithDesiredOrder(PK,FK1,FK2,COL1,COL2)

INSERT INTO TableWithDesiredOrder(PK,FK1,FK2,COL1,COL2....)
SELECT PK,FK1,FK2,COL1,COL2.... FROM OriginalTable

DROP TABLE OriginalTable

最后重命名表

sp_Rename TableWithDesiredOrder, OriginalTable

1
嗨,David,感谢您提供这个选项,但我希望有其他可用的选项。这需要编写创建-复制-删除步骤以及FK SQL。如果没有可能的方式可以完成它,那就没关系了。我希望有其他的选择。 - Bern
1
对David的回答点赞。我认为没有其他选项可以重新排序列。当您通过SSMS设计视图重新排序列时,在单击保存之前,可以通过右键单击并生成脚本菜单项查看SSMS为您生成的底层脚本。您可以看到SSMS使用了相同的方式(创建-复制-删除),但它还处理了FK等。也许您可以在运行脚本之前关闭FK检查,然后再打开它。 - Shaun Xu
为什么会有设计师支持我无法理解。这些小限制经常很痛苦。 - zacharydl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接