Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Обновляет метаданные для заданного, не привязанного к схеме, представления. Постоянные метаданные представления могут устареть вследствие изменения базовых объектов, от которых зависит представление.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_refreshview [ @viewname = ] 'viewname'
[ ; ]
Аргументы
[ @viewname = ] 'view name'
Имя представления. @viewname — nvarchar без значения по умолчанию. @viewname может быть многопартийным идентификатором, но может ссылаться только на представления в текущей базе данных.
Значения кода возврата
0 (успешно) или ненулевое число (сбой).
Замечания
Если представление не создано с SCHEMABINDING, sp_refreshview должно запускаться при внесении изменений в объекты, лежащие в основе представления, что влияет на определение вида. В противном случае просмотр может дать неожиданные результаты при запросе.
Разрешения
Требуется ALTER разрешение на представление, а REFERENCES также разрешение на пользовательские типы, определённые в общем языке (CLR), и коллекции схем XML, на которые ссылаются столбцы представления.
Примеры
Примеры кода в этой статье используют базу данных образца AdventureWorks2025 или AdventureWorksDW2025, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.
А. Обновление метаданных представления
В следующем примере выполняется обновление метаданных представления Sales.vIndividualCustomer.
USE AdventureWorks2025;
GO
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';
В. Создание скрипта, который обновляет все представления, имеющие зависимости от измененного объекта
Предполагается, что таблица Person.Person была изменена таким образом, что это повлияло на определение созданных на ней представлений. В следующем примере создается скрипт, обновляющий метаданные для всех представлений с зависимостями от таблицы Person.Person.
USE AdventureWorks2025;
GO
SELECT DISTINCT 'EXECUTE sp_refreshview ''' + name + ''''
FROM sys.objects AS so
INNER JOIN sys.sql_expression_dependencies AS sed
ON so.object_id = sed.referencing_id
WHERE so.type = 'V'
AND sed.referenced_id = OBJECT_ID('Person.Person');