Как я могу переименовать мой столбец в таблице SQL? - PullRequest
9 голосов
/ 17 июня 2010

Как переименовать столбец с помощью alter table в MS SQL 2005?

Например:

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

Ответы [ 5 ]

19 голосов
/ 17 июня 2010
sp_rename 'TableName.ColumnName', 'NewColumnName', 'COLUMN'
4 голосов
/ 17 июня 2010

я хочу сделать это без sp_rename, как я могу это изменить ..

Вы не можете.Вы можете создать новый столбец в таблице, используя новое имя, скопировать содержимое старого столбца в новый столбец, а затем удалить старый столбец (это два ALTER и ОБНОВЛЕНИЕ), но единственный способ сделать это в противном случаеis 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] RENAME {COLUMN} [column_name] TO [new_column_name]

2 голосов
/ 17 июня 2010

sp_rename как описано здесь .

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

1 голос
/ 18 декабря 2015

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

EXEC sp_RENAME 'table_name.old_Column_name', 'new_Column_name', 'COLUMN'
0 голосов
/ 12 февраля 2014

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

ALTER TABLE <db>.<table> CHANGE COLUMN <old_column_name> <new_column_name> <column_type>;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...