2017-02-14 9 views
0

Я пытаюсь изменить вид и я получаю следующее сообщение об ошибке:ALTER VIEW дает недопустимое имя столбца, но ВЫБРАТЬ работает отлично

Msg 207, Level 16, State 1, Procedure PackingList
Invalid column name 'NetLbs'.

Это выглядит как сообщение сами пояснительного, но проблема заключается в столбце есть. Если я запустил select, который является частью представления, он отлично работает.

Это мое заявление о изменении.

alter view [vw].[PackingList] 
as 
select b.Id, 
    b.NetLbs 

from WorkOrderDetails d 
join Boxes b on b.Id = d.BoxId 

Если я просто выполняю эту часть, он отлично работает.

select b.Id, 
    b.NetLbs 

from WorkOrderDetails d 
join Boxes b on b.Id = d.BoxId 

Я попытался сбросить представление и использовать создание, но это тоже не удалось. Итак, я создал представление с этим sql.

create view [vw].[PackingList] as select null as test 

И все еще не работает.

Однако я узнал, что если я создаю представление в схеме dbo, это сработает. Я не уверен, что я должен попробовать дальше.

+6

Я бы постарался поставить схему перед вашими таблицами. Посмотрите, поможет ли это. – SteveB

+1

Есть ли важная причина использовать схему '[vw]' для представлений? У вас действительно так много просмотров, что важно их разделить? Если есть, то я бы предложил отдать свои таблицы с помощью '[dbo]' в определении представления. –

+0

Кроме того, вы объединили две таблицы и использовали только данные из них. Это то, что вы хотели. – SteveB

ответ

0

user3083310 предложил поставить схему перед моими таблицами. Я сделал это, и он работает отлично.

Также см. this post от Aaron Bertrand, чтобы узнать больше о том, почему вы должны это делать.

 Смежные вопросы

  • Нет связанных вопросов^_^