2010-06-17 23 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'