sql-server - 更改 SQL Server 2008 中现有表的列顺序/添加新列

标签 sql-server

我遇到了这样的情况:我需要更改 SQL Server 2008 中现有表的列顺序/添加新列。它不允许我不删除并重新创建。但这是在生产系统中并且该表中有数据。我可以备份数据,删除现有表并更改顺序/添加新列并重新创建它,将备份数据插入新表中。

有没有最好的方法可以做到这一点而无需删除和重新创建。我认为 SQL Server 2005 将允许此过程,而无需在更改现有表结构时删除和重新创建。

谢谢

最佳答案

您无法真正更改 SQL Server 2008 表中的列顺序 - 它在很大程度上也是无关紧要的(至少在关系模型中应该如此)。

使用 SQL Server Management Studio 中的可视化设计器,一旦您进行太大的更改,对 SSMS 执行此操作的唯一可靠方法就是以新格式重新创建表,复制数据,然后然后删除旧表。您确实无法对此进行更改。

可以随时执行的操作是使用 SQL DDL 语句向表中添加新列或从表中删除现有列:

ALTER TABLE dbo.YourTable
    ADD NewColumn INT NOT NULL ........

ALTER TABLE dbo.YourTable
    DROP COLUMN OldColumn

这可行,但您将无法影响列顺序。但同样:对于您的正常操作,表中的列顺序完全无关 - 它充其量只是您的打印输出或图表上的装饰问题......那么您为什么如此关注特定的列顺序?

关于sql-server - 更改 SQL Server 2008 中现有表的列顺序/添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2489008/

相关文章:

sql-server - SQL Server 数据库架构和合规性审核工具

sql - 对索引列进行全表扫描?

sql-server - 从跨平台应用程序连接到 MS SQL Server

sql-server - 使用params在另一个数据库中执行存储过程

c# - 为什么简单的select会超时

c# - 使用 OPENJSON 将两个数组的对象插入 SQL 数据库

sql-server - SQL Server 复制数据库问题

php - 数据字段空值返回0

sql-server - 其他硬盘上的 SQL Server 2008 TempDB

Linux 上的字符集与 ODBC 到 SQL Server 不匹配