2010-03-15 53 views
41

我试了下面的代码。尽管我没有得到任何错误,但并没有这样做。重命名SQL Server中的列

SELECT * FROM Categories EXEC sp_rename 'Active', CategoriesActive 
+0

您想要完成什么? 要更改表中的值或更改表中列的名称或更改多列的名称? – SWeko 2010-03-15 15:15:13

+0

你能列出你有什么表/列和你想要重命名的东西吗? – 2010-03-15 15:15:36

回答

76
EXEC sp_rename 'Categories.Active', 'CategoriesActive', 'COLUMN' 
+1

另请参阅[sp_rename]的MSDN文档(http://technet.microsoft.com/zh-cn/library/ms188351.aspx)。 – 2014-04-02 13:49:37

5

需要使用以前面那个选择,而且语法应该是这样的:

EXEC sp_rename 
    @objname = 'Categories.Active', 
    @newname = 'CategoriesActive', 
    @objtype = 'Type_of_your_column' 
37

为MSSQL:

EXEC sp_rename 'TABLENAME.OLD_COLUMNNAME', 'NEW_COLUMNAME', 'COLUMN'; 

对于MySQL :使用ALTER TABLE来做到这一点

ALTER TABLE tbl_name CHANGE [COLUMN] old_col_name new_col_name 

您可以使用CHANGE old_col_name new_col_name column_definition子句重命名列。为此,请指定旧列名和新列名以及该列当前具有的定义。例如,要将INTEGER列从a重命名为b,您可以这样做:

ALTER TABLE t1 CHANGE a b INTEGER; 
+0

http://msdn.microsoft.com/en-us/library/ms190273.aspx似乎没有指出ALTER TABLE语句的CHANGE子句 – SWeko 2010-03-15 15:23:05

+0

对不起,我误解了我认为他指的是MYsql而不是MSsql的问题! 将相应编辑 – Xander 2010-03-15 15:26:15

+0

实际上它不是用于“sp_rename”这个非常特定于数据库的问题本来是数据库不可知的:) – SWeko 2010-03-15 15:28:53