Подтвердить что ты не робот

Как я могу решить "Либо параметр @objname неоднозначен, либо заявленный код @objtype (COLUMN) ошибочен".?

Если я попытаюсь выполнить следующий запрос:

EXEC sp_rename 'ENG_TEst.[ENG_Test_A/C_TYPE]', 'ENG_Test_AC_TYPE', 'COLUMN'

Я получаю сообщение об ошибке:

Либо параметр @objname равен неоднозначный или заявленный тип @objtype (COLUMN) неверно.

Как я могу его решить?

4b9b3361

Ответ 1

Гайки. Я ударил эту же ошибку несколько недель назад, и после того, как много потерянного времени выяснилось, как заставить ее работать, но я с тех пор забыл об этом. (Не много помощи, кроме как сказать "да", это можно сделать.)

Вы пробовали разные комбинации скобок или с и без брекетов? например.

EXEC sp_rename 'ENG_TEst.ENG_Test_A/C_TYPE', 'ENG_Test_AC_TYPE', 'COLUMN';
EXEC sp_rename '[ENG_TEst].[ENG_Test_A/C_TYPE]', 'ENG_Test_AC_TYPE', 'COLUMN';
EXEC sp_rename '[ENG_TEst].[ENG_Test_A/C_TYPE]', '[ENG_Test_AC_TYPE]', 'COLUMN';
EXEC sp_rename '[ENG_TEst].ENG_Test_A/C_TYPE', 'ENG_Test_AC_TYPE', 'COLUMN';

Если все остальное не работает, всегда

  • Создать новую таблицу (как "xENG_TEst" ) с собственными именами
  • Скопировать данные из старой таблицы
  • Удалить старую таблицу
  • Переименуйте новую таблицу в конечное имя

Ответ 2

Выполняется ли запрос в правильной базе данных? то есть.,

Use MyDatabase;
GO
EXEC sp_rename 'ENG_TEst.[ENG_Test_A/C_TYPE]', 'ENG_Test_AC_TYPE', 'COLUMN';
GO

Ответ 3

Это работает

EXEC sp_rename 
@objname = 'ENG_TEst."[ENG_Test_A/C_TYPE]"', 
@newname = 'ENG_Test_A/C_TYPE', 
@objtype = 'COLUMN'

Ответ 4

Я столкнулся с этим сегодня и получил его для работы с:

EXECUTE sp_rename N'dbo.table_name.original_field_name', N'new_field_name', 'COLUMN' 

Чтобы получить этот синтаксис, я последовал совету Мартина Смита выше - откройте таблицу в представлении дизайна, переименуйте столбец, а затем щелкните конструктор таблиц | сгенерировать изменение script. Это создало script, ниже которого переименование выполняется в два этапа:

/* To prevent any potential data loss issues, you should review this script in
   detail before running it outside the context of the database designer.*/
BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
EXECUTE sp_rename N'dbo.table_name.original_field_name', N'Tmp_new_field_name_1', COLUMN' 
GO
EXECUTE sp_rename N'dbo.table_name.Tmp_new_field_name_1', N'new_field_name', 'COLUMN' 
GO
ALTER TABLE dbo.table_name SET (LOCK_ESCALATION = TABLE)
GO
COMMIT

Ответ 5

У меня также была эта проблема - очень раздражающая и еще не нашла удовлетворительного sql-ответа (кроме длинных, связанных с созданием временных таблиц и т.д.), и у меня не было времени изучить его до конца. я 'd понравился.

В итоге просто использовал SQL Server Management Studio для этого, выбрав таблицу, щелкнув правой кнопкой мыши на столбце и нажав на переименование. Simples!

Очевидно, я предпочел бы знать, как это сделать без gui, но иногда вам просто нужно сделать sh ** done!

Ответ 6

Я получил эту ошибку при обновлении первой базы MVC5 кода. Удаление (щелчок правой кнопкой мыши, удаление) все таблицы из моей базы данных и удаление миграций из папки миграции работали для меня.

Ответ 7

Обе следующие работы (как обсуждалось здесь).

exec sp_rename 'ENG_TEst.[[ENG_Test_A/C_TYPE]]]' , 
                'ENG_Test_A/C_TYPE', 'COLUMN'


exec sp_rename 'ENG_TEst."[ENG_Test_A/C_TYPE]"' , 
                'ENG_Test_A/C_TYPE', 'COLUMN'

Ответ 8

Я пробовал все возможные решения на этом веб-сайте, и ничто не работало для меня. Я закончил работу в режиме дизайна. Щелкните правой кнопкой мыши на имени таблицы и выберите дизайн. Затем я изменил имя и сохранил его. Проработал просто.

Ответ 9

просто попробуйте удалить ИНДЕКСЫ СТАТИСТИКИ, связанные с этим COLUMN.

С наилучшими пожеланиями.