如何使用SQL重命名数据库表中的列?

如果我希望只使用SQL重命名SQL数据库中的列(而不是更改其类型或约束,仅更改它的名称),我该怎么做? 还是不可能?

这适用于任何声称支持SQL的数据库,我只是在寻找一个SQL特有的查询,无论实际的数据库实现如何,都可以工作。


在PostgreSQL(以及其他许多RDBMS)上,您可以使用常规的ALTER TABLE语句来完成它:

essais=> SELECT * FROM Test1;
 id | foo | bar 
----+-----+-----
  2 |   1 |   2

essais=> ALTER TABLE Test1 RENAME COLUMN foo TO baz;
ALTER TABLE

essais=> SELECT * FROM Test1;
 id | baz | bar 
----+-----+-----
  2 |   1 |   2

特别是对于SQL Server,请使用sp_rename

USE AdventureWorks;
GO
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
GO

在MySQL中,语法是ALTER TABLE ... CHANGE

ALTER TABLE <table_name> CHANGE <column_name> <new_column_name> <data_type> ...

请注意,您不能重命名并按原样保留类型和约束; 您必须在列的新名称之后重新输入数据类型和约束。

链接地址: http://www.djcxy.com/p/24755.html

上一篇: How do I rename a column in a database table using SQL?

下一篇: Stored procedure giving error while implementing