Spero possa essere utile anche a voi quanto sto per scrivere, per me in primis vuole essere un appunto da tenere sempre a portata di mano nei momenti in cui la mente mi abbandona. Vi è capitato di creare e subito dopo modificare viste (view) in SQL Server e di trovarvi in questa situazione: creo una vista che prende dati da un’altro database presente nello stesso server:
CREATE VIEW MyView AS SELECT Column1,Column2 FROM Database.dbo.Table
Successivamente creo un’altra vista quasi identica che per determinati motivi si “appoggia” direttamente alla prima facendo una SELECT * (START premettendo che è sbagliato eseguire una select in questo modo in quanto a risentirne di più sono proprio le performance del server SQL).
CREATE VIEW MyView2 AS SELECT * FROM MyView
Dopo un pò di tempo torno sulla prima view e ne modifico le colonne, ne aggiungo di nuove. Cosa succede? Che MyView2 interrogata, mi risponde riportando solo le vecchie colonne e non le nuove. Questo succede perchè lo schema della vista non è stato aggiornato correttamente, per ovviare a questa situazione basta un semplice comando:
EXEC sp_refreshview @view = N'MyView2'
Successivamente, la vista contiene l’elenco delle colonne aggiornate!
0 Responses to “Aggiornare lo schema di una vista con sp_refreshview.”