Как переименовать столбец в таблице SQL?

Как я могу переименовать столбец через alter table в MS SQL 2005?

например:

alter table tablename rename "old col name" to "new col name"

5 ответов


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

Я хочу сделать это без процедуру sp_rename как я могу это изменить?.

вы не можете. Вы можете создать новый столбец в таблице, используя новое имя, скопировать содержимое старого столбца в новый столбец, а затем удалить старый столбец (это два изменения и обновление), но единственный способ сделать это иначе-sp_rename.

вот ссылка на ALTER TABLE документация, где вы можете увидеть, какие варианты доступны для вас. Изменение не один из них.

этот раздел документации охватывает то, что вы можете сделать как часть предложения Alter COLUMN ALTER TABLE:

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}
}

Примечание, нет никакого упоминания о новом имени. Таким образом, повторяю, вы не можете переименовать столбец с помощью ALTER TABLE в SQL Server. Если они реализовали стандартный синтаксис (чего они не делают), это будет ALTER TABLE [table_name] переименовать {COLUMN} [column_name] в [new_column_name]


sp_rename Как рассказали здесь.

хотя я, кажется, помню, что его не всегда можно использовать.


попробуйте переименовать столбец

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

для MySQL синтаксис:

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