2016-12-12 8 views
0

У меня есть представление, генерирующее из двух основных таблиц. Когда я добавляю записи в одну из основных таблиц, представление не обновляется автоматически. Даже я пробовал использовать exec sp_refreshview, чтобы обновить представления, это не сработало.Как обновляются представления при добавлении записей в базовую таблицу

Как мне обновить этот вид?

Есть ли другой способ? Я использую Microsoft SQL.

Определение View выглядит следующим образом ...

create view hipo_view 
as 
select 
    hipo_list.companyName, 
    hipo_list.hipoName, 
    hipo_list.uNo, 
    hipo_list.uCompany, 
    hipo_list.employeeNo, 
    employee_info.imageURL 
From hipo_list, employee_info 
where hipo_list.hipoName = employee_info.employeeName 
AND hipo_list.employeeNo = employee_info.employeeNo 
+6

Что значит «просмотр не обновляется автоматически»? Представления (если они не материализованы) в основном заменяют код на запрос, в котором они используются. Они всегда должны использовать последнюю версию таблицы. Вы уверены, что совершаете транзакции вокруг операторов 'insert'? –

+1

Если вы копируете/вставляете SQL в Management Studio и запускаете ее самостоятельно, вы видите, чего вы ожидаете? –

+4

И чтобы добавить к тому, что сказал Гордон в SQL Server, версия материализованных представлений (индексированные представления) также не может устаревать - они поддерживаются как часть каждой транзакции против базовой таблицы (таблиц). Отложенных процессов обслуживания нет. –

ответ

1

Там нет ничего, что может обновляться при обновлении таблицы. Представление не существует (если оно не проиндексировано); это всего лишь сокращение для запроса, который формирует его.

Если ваш результат не соответствует ожидаемому, вы должны заглянуть в запрос вида. Там вы найдете ошибку.