Ridenominazione di tutti i riferimenti a un oggetto di database

È possibile aggiornare in modo più rapido e preciso i riferimenti agli oggetti di database rinominati tramite il refactoring del database. Se si rinomina un oggetto di database in un progetto di database, è inoltre necessario aggiornare tutti i riferimenti a tale oggetto in modo che venga utilizzato il nuovo nome come riferimento. Ad esempio, è necessario aggiornare le stored procedure che fanno riferimento a una colonna della tabella rinominata.

Con il refactoring, è possibile aggiornare i riferimenti nell'intero progetto di database evitando di dover tenere traccia manualmente degli oggetti che dipendono l'uno dall'altro e di aggiornare i riferimenti uno alla volta. Anche se si utilizza sp_depends per trovare le dipendenze, non sempre tale informazione viene recuperata in modo accurato, pertanto è necessario aggiornare ciascun riferimento.

È possibile utilizzare il refactoring per rinominare automaticamente i tipi di oggetto seguenti:

  • Tabelle

  • Colonne di tabelle, visualizzazioni e funzioni

  • Parametri di stored procedure

È inoltre possibile utilizzare il refactoring per aggiornare gli unit test, gli script e i piani di generazione dati. Per ulteriori informazioni, vedere Considerazioni prima della ridenominazione di oggetti di database.

Per impostazione predefinita, il refactoring non aggiorna gli oggetti le cui definizioni sono causa di uno o più avvisi o errori. Inoltre, il refactoring non aggiorna automaticamente il nome del file con estensione sql che contiene la definizione per un oggetto rinominato. Sarà possibile rinominare il file manualmente in Esplora soluzioni.

Utilizzi aggiuntivi del refactoring di ridenominazione

È inoltre possibile utilizzare il refactoring di ridenominazione per eseguire le attività comuni seguenti:

  • In un ambiente in cui non viene rilevata la differenza tra maiuscole e minuscole è possibile modificare il nome di un oggetto e tutti i relativi riferimenti in modo che l'uso delle maiuscole e minuscole sia conforme alle convenzioni dell'organizzazione. Il progetto di database potrebbe contenere, ad esempio, una combinazione di riferimenti a "Mioid" e "MioID" ed è possibile modificare tutti i riferimenti a "MioID" tramite il refactoring di ridenominazione.

    Nota

    Anche i riferimenti in cui maiuscole e minuscole erano già utilizzate in modo corretto verranno aggiornati con lo stesso valore. Se il file che contiene tali riferimenti è sottoposto al controllo della versione, verrà estratto durante l'operazione di refactoring.

  • È possibile rinominare due o più oggetti in modo che i nomi e i riferimenti corrispondano. Ad esempio, è possibile unire due nomi dello schema, quali "Persona" e "Nome persona", oppure due nomi che si differenziano solo per l'uso delle maiuscole e delle minuscole in un ambiente in cui viene rilevata tale distinzione, ad esempio "MioID" e "Mioid".

  • È possibile racchiudere tra parentesi quadre il nome dell'oggetto dello schema e tutti i relativi riferimenti per applicare le procedure consigliate di denominazione dell'oggetto. È ad esempio possibile sostituire tutti i riferimenti a "MioID" con "[MioID]".

    Nota

    Anche i riferimenti già racchiusi tra parentesi quadre verranno aggiornati con lo stesso valore. Se il file che contiene tali riferimenti è sottoposto al controllo della versione, verrà estratto durante l'operazione di refactoring.

Quando si eseguono queste attività, viene visualizzato un messaggio di errore per avvertire che esiste già un oggetto con tale nome. È necessario fare clic su per apportare la modifica. È tuttavia possibile visualizzare in anteprima ed escludere le singole modifiche se nella finestra di dialogo Rinomina viene selezionata la casella di controllo Anteprima modifiche.

Verifica della correttezza delle modifiche con il log del refactoring

Quando si rinomina un oggetto di database, viene aggiunta una voce al log del refactoring per il progetto di database. Quando si implementano le modifiche, il log consente di assicurarsi che l'oggetto corrispondente nell'ambiente di destinazione venga rinominato nel modo corretto. In caso contrario, l'oggetto esistente verrebbe eliminato e verrebbe aggiunto un oggetto con il nuovo nome. Il log è contenuto in un file XML denominato NomeProgetto.refactorlog. Archiviare questo file nel sistema di controllo della versione durante l'archiviazione degli altri file che compongono il progetto di database. Il file NomeProgetto.refactorlog contiene solo le informazioni sulle operazioni di refactoring che richiedono una gestione speciale durante la distribuzione.

Distribuzione

Quando si utilizza il refactoring, si aggiorna solo il progetto di database, non un database di produzione. Adottando questa strategia si ottengono tutti i vantaggi dei progetti di database, inclusi il controllo della versione e lo sviluppo in team. Quando si compila il progetto di database, tutti i file di log del refactoring vengono uniti nel file transaction.refactorlog nella cartella \sql del progetto. Quando si distribuiscono le modifiche, il file di log del refactoring unito consente di garantire la realizzazione dello scopo delle modifiche apportate al progetto di database.

Per ulteriori informazioni, vedere Compilazione e distribuzione di database in un ambiente di sviluppo isolato.

Nota

In un ambiente team, eseguire gli unit test del database e dell'applicazione prima di distribuire le modifiche a un server di produzione. Per ulteriori informazioni, vedere Avvio dello sviluppo in team di database.

Considerazioni prima della ridenominazione

Prima di rinominare i riferimenti a un oggetto di database, è necessario comprendere le considerazioni aggiuntive se le istruzioni seguenti sono vere:

  • Si desidera rinominare una colonna in una visualizzazione.

  • Si desidera rinominare un oggetto in un progetto di database che contiene uno o più errori che ne impediscono la compilazione corretta.

  • Un piano di generazione dati non salvato è aperto.

  • Un piano di generazione dati nel progetto utilizza il generatore associato a dati.

  • Alcuni unit test del database non utilizzano nomi completi e tali test fanno riferimento a oggetti in altri schemi o database.

  • Alcuni script di database nel progetto non utilizzano nomi completi e tali script fanno riferimento a oggetti in altri schemi o database.

Per ulteriori informazioni sulle considerazioni speciali in questi scenari, vedere Considerazioni prima della ridenominazione di oggetti di database.

Attività comuni

Nella tabella seguente è possibile trovare descrizioni di attività comuni che supportano questo scenario e collegamenti a ulteriori informazioni sull'esecuzione corretta di queste attività.

Attività

Argomenti correlati

Fare pratica: è possibile acquisire familiarità con lo spostamento di oggetti di database in uno schema diverso, oltre ad altri tipi di refactoring, eseguendo la procedura dettagliata. È inoltre possibile vedere le modalità di utilizzo del refactoring come parte del ciclo di vita dello sviluppo del database completando le procedure dettagliate introduttive.

Rinominare un oggetto di database: è possibile utilizzare il refactoring per modificare tutti i riferimenti a un oggetto di database nel progetto di database. Nel corso dell'operazione di refactoring, è possibile visualizzare in anteprima le modifiche prima di applicarle.

Annullare un'operazione di refactoring: è possibile annullare un'operazione di refactoring nella sessione corrente di Visual Studio.

Distribuire le modifiche di refactoring del database: dopo avere eseguito il refactoring del progetto di database, è necessario distribuire le modifiche relative in un database di destinazione. Le modifiche vengono in genere distribuite nell'ambiente di sviluppo isolato in modo da testarle prima di archiviarle nel controllo della versione.

Risolvere i problemi: è possibile acquisire ulteriori informazioni sulla risoluzione dei problemi relativi al refactoring del database.

Scenari correlati

Rinominare riferimenti a un server o a un database

Spostamento di un oggetto di database in un altro schema

Specifica completa dei nomi degli oggetti di database

Espandere i caratteri jolly nelle istruzioni SELECT

Vedere anche

Concetti

Refactoring del codice e dei dati del database

Panoramica sui progetti di database e server