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

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

Например:

alter table tablename rename "old col name" to "new col name"
9
задан yoozer8 11 January 2012 в 18:17
поделиться

3 ответа

sp_rename 'TableName.ColumnName', 'NewColumnName', 'COLUMN'
19
ответ дан 4 December 2019 в 08:14
поделиться

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

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

2
ответ дан 4 December 2019 в 08:14
поделиться

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

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

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

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

ALTER COLUMN имя_столбца 
{ 
 [ 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 [table_name] RENAME {COLUMN} [имя_колонки] на [новое_имя_колонки]

4
ответ дан 4 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: