Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureDatabase SQL in Microsoft Fabric
Aggiorna i metadati per la vista non associata a schema specificata. I metadati persistenti di una vista possono diventare obsoleti in seguito alla modifica degli oggetti sottostanti su cui è basata la vista.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_refreshview [ @viewname = ] 'viewname'
[ ; ]
Argomenti
[ @viewname = ] 'nome visualizzato'
Il nome della visualizzazionre. @viewname è nvarchar, senza impostazione predefinita. @viewname può essere un identificatore multipart, ma può fare riferimento solo alle viste nel database corrente.
Valori del codice restituito
0 (esito positivo) o un numero diverso da zero (errore).
Osservazioni:
Se una vista non viene creata con SCHEMABINDING, sp_refreshview dovrebbe essere eseguita quando vengono apportate modifiche agli oggetti sottostanti alla vista, il che influisce sulla definizione della vista. Altrimenti, la visualizzazione potrebbe produrre risultati inaspettati quando la interroghi.
Autorizzazioni
Richiede ALTER permesso sulla view, e REFERENCES permesso per i tipi definiti dall'utente e le collezioni di schema XML a riferimento per le colonne della vista in tempo di esecuzione (common language runtime) (CLR).
Esempi
Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2025 o AdventureWorksDW2025, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects.
R. Aggiornare i metadati di una visualizzazione
Nell'esempio seguente vengono aggiornati i metadati della vista Sales.vIndividualCustomer.
USE AdventureWorks2025;
GO
EXECUTE sp_refreshview N'Sales.vIndividualCustomer';
B. Creare uno script che aggiorna tutte le visualizzazioni con dipendenze da un oggetto modificato
Si supponga che la tabella Person.Person sia stata modificata in modo da influire sulla definizione di qualsiasi vista creata in base a essa. Nell'esempio seguente viene creato uno script con cui vengono aggiornati i metadati di tutte le viste con una dipendenza dalla tabella 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');