我使用SQL Server 2008和Navicat。我需要使用SQL重命名表中的列。

ALTER TABLE table_name RENAME COLUMN old_name to new_name;

这个说法不成立。


当前回答

运行查询:

    SP_RENAME '[TableName].[ColumnName]','NewNameForColumn'

其他回答

Sql Server管理工作室有一些系统定义的存储过程(SP) 其中一个用于重命名列。SP为sp_rename

语法:sp_rename '[table_name]。old_column_name”、“new_column_name” 如需进一步帮助,请参阅本文:sp_rename by Microsoft Docs

注意:在执行此SP时,sql server会给你一个警告消息,如“警告:更改对象名称的任何部分都可能破坏脚本和存储过程”。只有当您编写了自己的sp,其中涉及您要更改的表中的列时,这才至关重要。

可以使用sp_rename重命名列。

USE YourDatabase;  
GO  
EXEC sp_rename 'TableName.OldColumnName', 'NewColumnName', 'COLUMN';  
GO  

第一个参数是要修改的对象,第二个参数是将赋予对象的新名称,第三个参数COLUMN通知服务器,重命名是针对列的,也可以用于重命名表、索引和别名数据类型。

除了SQL之外,您还可以在Microsoft SQL Server Management Studio中执行此操作。下面是一些使用GUI的快速方法:

第一个方法

缓慢双击列。列名将成为一个可编辑的文本框。


第二种方式

右键单击列并从上下文菜单中选择“重命名”。

例如:


第三条道路

当您需要一次性重命名多个列时,这种方式更可取。

右键单击包含需要重命名的列的表。 点击设计。 在表设计面板中,单击并编辑要更改的列名的文本框。

例如:

注意:我知道OP特别要求SQL解决方案,认为这可能有助于其他人:)

因为我经常来这里,然后想知道如何使用括号,这个答案可能对像我这样的人有用。

EXEC sp_rename '[DB].[dbo].[Tablename].OldColumnName', 'NewColumnName', 'COLUMN'; 

OldColumnName不能在[]中。这是行不通的。 不要在[]中输入NewColumnName,它会生成[[NewColumnName]]。

或者你可以在SQL Management Studio中慢点两次列并通过UI重命名它…