Невозможно выполнить alter для «Views», потому что это несовместимый тип объекта - PullRequest
1 голос
/ 15 мая 2019

Я пытаюсь изменить представление в моей базе данных. Но система выдает следующую ошибку.

Сообщение 2010, Уровень 16, Состояние 1, Процедура V ******, Строка 1 [Стартовая Строка 0] Невозможно выполнить alter для 'dbo.V _ ****, поскольку это несовместимый тип объекта.

Я отбросил вид и создал новый вид, после чего он заработал. Но я не хочу бросать и создавать.

ALTER view [dbo].[V_***] as
 with
  L******* (
   LOC_ID,
   CLASS_ID,
   LOC_BARCODE,
   LOC_NAME,
   LOC_NAME_BASE,
   LOC_NAME_LAST,
   SORT_LEVEL,
   P_LOC_ID,
   DEL_FLAG,
   SEL_FLAG,
   OVER_CHECK_FLAG
  )
  as
  (
   select
    LOC_ID,
    CLASS_ID,
    LOC_BARCODE,
    cast(LOC_NAME as nvarchar(4000)) LOC_NAME,
    cast('' as nvarchar(4000)) LOC_NAME_BASE,
    LOC_NAME LOC_NAME_LAST,
    SORT_LEVEL,
    P_LOC_ID,
    DEL_FLAG,
    SEL_FLAG,
    OVER_CHECK_FLAG

1 Ответ

0 голосов
/ 15 мая 2019

Исходя из сообщения об ошибке, я предполагаю, что у вас уже есть объект с таким именем.

Невозможно выполнить изменение '', поскольку это несовместимый тип объекта.

Причина: На сервере SQL мы не можем изменить один объект на другой тип объекта, например:

  1. Таблица для просмотра или наоборот
  2. Хранимая процедурафункционировать или наоборот
  3. Скалярная функция для табличной функции или наоборот

Попробуйте ALTER view [dbo].[V_***] с другим именем.

Вы всегда можете проверить представленияна вашем сервере SQL до создания представления с помощью:

select Name 
  from sys.views 
 where name LIKE '%your_view_name%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...