如何使用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?