sp_refreshview (Transact-SQL)

Data aggiornamento: 14 aprile 2006

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.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

sp_refreshview [ @viewname = ] 'viewname' 

Argomenti

  • [ @viewname= ] 'viewname'
    Nome della vista. viewname è di tipo nvarchar e non prevede alcun valore predefinito. viewname può essere un identificatore in più parti ma può fare riferimento solo a viste del database corrente.

Osservazioni

Se una vista non viene creata con associazione a schema, è consigliabile eseguire sp_refreshview quando vengono apportate modifiche agli oggetti sottostanti alla vista che influiscono sulla definizione della vista. In caso contrario, le query sulla vista possono generare risultati imprevisti.

Autorizzazioni

Sono richieste l'autorizzazione ALTER per la vista e l'autorizzazione REFERENCES per i tipi CLR (Common Language Runtime) definiti dall'utente e gli insiemi di schemi XML a cui fanno riferimento le colonne della vista.

Valori restituiti

0 (esito positivo) o un numero diverso da zero (esito negativo)

Cronologia delle modifiche

Versione Cronologia

14 aprile 2006

Nuovo contenuto:
  • Aggiunta della sezione Osservazioni per chiarire il motivo dell'utilizzo di sp_refreshview.
  • Aggiunta dell'esempio B.
Contenuto modificato:
  • Aggiornamento dell'esempio A.

Esempi

A. Aggiornamento dei metadati di una vista

Nell'esempio seguente vengono aggiornati i metadati della vista Sales.vIndividualCustomer.

USE AdventureWorks;
GO
exec sp_refreshview N'Sales.vIndividualCustomer';

B. Creazione di uno script con cui vengono aggiornate tutte le viste con dipendenze da un oggetto modificato

Si supponga che la tabella Person.Contact 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.Contact.

USE AdventureWorks;
GO
SELECT DISTINCT 'EXEC sp_refreshview ''' + name + '''' 
FROM sys.objects so INNER JOIN sys.sql_dependencies sd 
ON so.object_id = sd.object_id 
WHERE type = 'V' 
AND sd.referenced_major_id = object_id('Person.Contact') 

Vedere anche

Riferimento

Stored procedure del Motore di database (Transact-SQL)
Stored procedure di sistema (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005