2010-06-17 24 views

回答

18
sp_rename 'TableName.ColumnName', 'NewColumnName', 'COLUMN' 
2

sp_rename如上所述here

虽然我似乎记得它不能总是被使用。

+0

我想让它不sp_rename我怎样才能做到这一点改变.... – Penguen 2010-06-17 08:33:18

+0

@Phsika:不要以为你可以,有时我感到沮丧也。 – 2010-06-17 09:13:02

4

我想让它不sp_rename 我怎样才能做到这一点改变..

你不能。您可以使用新名称在表中创建一个新列,将旧列的内容复制到新列中,然后删除旧列(这是两个ALTER和一个UPDATE),但唯一的办法就是这样做是sp_rename。

下面是ALTER TABLE documentation的链接,您可以在其中看到可用的选项。变化不是其中之一。

文档的这一部分涵盖了你可以作为ALTER TABLE的ALTER COLUMN子句的一部分做什么:

ALTER COLUMN column_name 
{ 
    [ type_schema_name. ] type_name [ ({ precision [ , scale ] 
     | max | xml_schema_collection }) ] 
    [ COLLATE collation_name ] 
    [ NULL | NOT NULL ] 
| {ADD | DROP } { ROWGUIDCOL | PERSISTED | NOT FOR REPLICATION} 
} 

注意,有一个新的名字只字不提。因此,再次重复一次,您无法在SQL Server中使用ALTER TABLE重命名列。如果他们实现的标准语法(它们不),这将是ALTER TABLE [表名] RENAME {COLUMN} [列名]至[new_column_name]

+0

改变表'客户'更改'newColumnName''[First_Name]'类型大小是否为真更改不是在MS SQL? – Penguen 2010-06-17 08:40:24

0

对于MySQL的语法是:

ALTER TABLE <db>.<table> CHANGE COLUMN <old_column_name> <new_column_name> <column_type>; 
1

试试这个重命名列

EXEC sp_RENAME 'table_name.old_Column_name', 'new_Column_name', 'COLUMN'