как переименовать имя столбца с T-SQL - PullRequest
37 голосов
/ 20 февраля 2012

Мне нужна помощь с колонкой таблицы SQL Server. Я пытаюсь переименовать имя столбца, но это не работает.

USE COST_mesta_test
GO
EXEC sp_rename '[dbo].[1965$].obec' , 'people' , 'COLUMN'
GO

Я пробовал разные комбинации скобок [] и пути к таблице "obec" (например: 1965.obec; 1965 $ .obec; 1965. [obec]; и т. д.) Но все равно я получаю ошибку:

Либо параметр @objname является неоднозначным, либо заявленный @objtype (КОЛОННА) не так.

Ответы [ 2 ]

71 голосов
/ 20 февраля 2012

Я не очень понимаю, как устроен твой стол - т.е.имя таблицы, имя столбца и т. д. - это пример того, как работает proc для переименований столбцов:

Если бы у меня была такая таблица:

CREATE TABLE [dbo].[Company](
[ID] [int],
[CompanyName] [varchar](20)
)

и я хотел изменитьВ столбце [CompanyName] это команда:

EXEC sys.sp_rename 
    @objname = N'dbo.Company.CompanyName', 
    @newname = 'Name', 
    @objtype = 'COLUMN'

Я подозреваю, что ваш первый аргумент неверен.

Из документации ( sp_rename (Transact-SQL) )

Если переименовываемый объект является столбцом в таблице, имя_объекта должно иметь вид table.column или schema.table.column .Если переименовываемый объект является индексом, имя_объекта должно иметь вид table.index или schema.table.index

7 голосов
/ 16 декабря 2012

Вы также можете изменить имя столбца, щелкнув правой кнопкой мыши имя столбца и выбрав опцию «переименовать» в обозревателе объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...