Как я могу переименовать столбец через alter table
в MS SQL 2005?
Например:
alter table tablename rename "old col name" to "new col name"
sp_rename 'TableName.ColumnName', 'NewColumnName', 'COLUMN'
sp_rename
, как описано здесь .
Хотя я, кажется, помню, что его не всегда можно использовать.
я хочу сделать его без 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} [имя_колонки] на [новое_имя_колонки]