Procedura: Utilizzo della ridenominazione e del refactoring per apportare modifiche agli oggetti di database
Il menu contestuale Refactoring nell'Editor Transact-SQL consente di rinominare o spostare un oggetto in uno schema differente e di generare un'anteprima di tutte le aree interessate prima di eseguire il commit della modifica. È inoltre possibile usare il menu Refactoring per indicare il nome completo di tutti i riferimenti agli oggetti di database o per espandere alcuni caratteri jolly nelle istruzioni SELECT
del progetto di database in uso.
Avviso
La procedura seguente usa le entità create nelle procedure precedenti nelle sezioni Sviluppo di database offline orientate al progetto.
Per rinominare un tipo
Fare clic con il pulsante destro del mouse sulla tabella Products (Products.sql) in Esplora soluzioni e selezionare Visualizza codice per aprire lo script nell'Editor Transact-SQL.
Fare clic con il pulsante destro del mouse su
[Products]
nello script, selezionare Refactoring, quindi Rinomina.Nel campo Nuovo nome impostare il nome su Product. Lasciare l'opzione Anteprima modifiche selezionata e scegliere OK.
Nell schermata successiva sarà possibile visualizzare un'anteprima di un elenco di script che saranno interessati dall'operazione di ridenominazione. In particolare, verranno evidenziate tutte le parti che fanno riferimento a
Products
. Questa operazione è molto simile all'attività Trova tutti i riferimenti illustrata nella procedura precedente. Fare clic su un elemento nel riquadro superiore e visualizzare la modifica effettiva negli script (evidenziati in verde) nel riquadro inferiore.Fare clic su Applica.
Per i file di script già aperti in Progettazione tabelle o nell'Editor Transact-SQL, si noti che le posizioni in cui sono state eseguite modifiche sono evidenziate con una barra verde a sinistra nell'Editor Transact-SQL.
Si noti l'aggiunta di TradeDev.refactorlog in Esplora soluzioni. Fare doppio clic per aprirlo. In esso è contenuta una rappresentazione XML di tutte le modifiche in questa sessione.
Premere F5 per compilare e distribuire il progetto nel database locale.
Fare clic con il pulsante destro del mouse sul database TradeDev in Locale in Esplora oggetti di SQL Server e selezionare Aggiorna.
Espandere Tabelle. Si noti che la tabella Products è stata rinominata.
Fare clic con il pulsante destro del mouse su Product e selezionare Visualizza dati. Si noti che i dati esistenti non sono stati modificati nonostante l'operazione di ridenominazione.
Avviso
Se viene eliminato un log di refactoring, verrà eliminata la cronologia completa del refactoring. Quando il progetto viene pubblicato in un database dove le operazioni di refactoring precedenti non sono state applicate, tutte le operazioni di refactoring completate prima dell'eliminazione del file di refactoring verranno pubblicate come operazioni di esclusione e creazione. Di conseguenza, può verificarsi una perdita di dati.
Per espandere i caratteri jolly
Espandere il nodo Funzioni in Esplora soluzioni e fare doppio clic su GetProductsBySupplier.sql.
Posizionare il cursore sull'asterisco in questa riga e fare clic con il pulsante destro del mouse. Selezionare Refactoring ed Espandi caratteri jolly.
SELECT * from Product p
Nella finestra di dialogo Anteprima modifiche fare clic su
SELECT * from Product p
nel riquadro superiore per evidenziare tale elemento.Nel riquadro Anteprima modifiche sottostante si noti che al carattere
*
è stato aggiunto quanto riportato di seguito nello script.[Id], [Name], [ShelfLife], [SupplierId], [CustomerId]
Fare clic sul pulsante Applica. Si noti che la riga contenente le modifiche prodotte dall'operazione di espansione è di nuovo evidenziata con una barra verde a sinistra.
Per indicare i nomi completi di oggetti di database
Assicurarsi che GetProductsBySupplier.sql sia ancora aperto nell'Editor Transact-SQL.
Posizionare il cursore su
Product
in questa riga e fare clic con il pulsante destro del mouse. Selezionare Refactoring e Utilizza nomi completi.SELECT [Id], [Name], [ShelfLife], [SupplierId], [CustomerId] from Product p
Fare clic sul pulsante Applica nella finestra di dialogo Anteprima modifiche. Si noti che tutti i riferimenti agli oggetti sono stati aggiornati per includere il nome dello schema dell'oggetto e, se l'oggetto dispone di un elemento padre, il nome dell'elemento padre.
SELECT [p].[Id], [p].[Name], [p].[ShelfLife], [p].[SupplierId], [p].[CustomerId] from [dbo].[Product] p
Per spostare lo schema
Fare clic con il pulsante destro del mouse sull'oggetto da spostare. Selezionare Refactoring e Sposta schema.
Nell'elenco Nuovo schema fare clic sul nome dello schema in cui spostare l'oggetto. Fare clic su OK.
Se è stata selezionata la casella di controllo Anteprima modifiche, verrà visualizzata la finestra di dialogo Anteprima modifiche. In caso contrario, il nome dell'oggetto viene aggiornato e l'oggetto viene spostato nel nuovo schema.