Condividi tramite


Cenni preliminari sul refactoring di ridenominazione

Aggiornamento: novembre 2007

È possibile utilizzare il refactoring del database per rinominare un oggetto dello schema. Gli altri oggetti che fanno riferimento all'oggetto rinominato verranno automaticamente aggiornati in base al nuovo nome. Se ad esempio si rinomina una colonna di una tabella, le eventuali stored procedure che fanno riferimento a tale colonna verranno automaticamente aggiornate in base al nuovo nome. Di seguito sono riportati alcuni esempi di oggetti dello schema che è possibile rinominare:

  • Tabelle

  • Colonne di tabelle, viste e funzioni

  • Parametri di stored procedure

La ridenominazione di oggetti di database è sempre stata un'operazione semplice, mentre l'aggiornamento degli oggetti che fanno riferimento all'oggetto rinominato è più difficile, in quanto si tratta di un'attività manuale che richiede la presenza di un record di tutti gli oggetti che fanno riferimento all'oggetto rinominato o si basano su sp_depends per ottenere tali informazioni. Poiché sp_depends potrebbe non restituire sempre i dati previsti, risulta talvolta impossibile ottenere in modo affidabile tali informazioni. Utilizzando il refactoring del database è invece possibile rinominare in modo affidabile gli oggetti di database e gli oggetti che fanno riferimento a tali oggetti. Per impostazione predefinita, gli aggiornamenti vengono applicati solo agli oggetti le cui definizioni non provocano avvisi o errori.

Oltre ad aggiornare automaticamente gli oggetti dello schema che fanno riferimento ad altri oggetti, il refactoring del database consente anche di aggiornare piani di generazione dati, script e unit test. Per ulteriori informazioni, vedere Considerazioni prima della ridenominazione di oggetti di database.

Nota:

Quando si rinomina un oggetto di database, il file con estensione sql associato a tale oggetto non viene rinominato. È possibile rinominarlo manualmente utilizzando la finestra Esplora soluzioni.

Utilizzi aggiuntivi del refactoring di ridenominazione

Il refactoring di ridenominazione può risultare utile anche per eseguire le attività comuni seguenti:

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

    Nota:

    I riferimenti che utilizzano già le maiuscole e le minuscole corrette 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.

  • Rinominare due o più oggetti in modo che i nomi e i riferimenti corrispondano. È ad esempio possibile unire due nomi dello schema (ad esempio "Persona" e "Nome persona") o due nomi che differiscono solo per l'uso delle maiuscole e delle minuscole in un ambiente in cui viene rilevata tale distinzione (ad esempio "MioID" e "Mioid").

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

    Nota:

    I riferimenti racchiusi già 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 l'oggetto dello schema con il nuovo nome esiste già. È necessario fare clic su Sì per apportare la modifica. È tuttavia possibile visualizzare in anteprima ed escludere le singole modifiche se nella finestra di dialogo Rinomina si lascia selezionata la casella di controllo Anteprima modifiche.

Distribuzione

Il refactoring del database si basa sul progetto di database. Questo approccio implica che le modifiche non vengono apportate direttamente a un database in linea, ma al progetto di database. Seguendo questa strategia si ottengono tutti i vantaggi dei progetti di database, compreso il controllo del codice sorgente e lo sviluppo in team. È quindi possibile distribuire le modifiche apportate al progetto di database utilizzando la funzionalità di distribuzione del progetto di database. Per ulteriori informazioni, vedere Generazione e distribuzione di schemi di database.

Nota:

In un ambiente di team è necessario eseguire gli unit test di applicazioni e database prima di distribuire le modifiche su un server di produzione. Per ulteriori informazioni, vedere Panoramica sulla creazione e sulla pubblicazione di database in un ambiente di team.

Finestra di dialogo Anteprima modifiche

Quando si utilizza il refactoring per rinominare un oggetto di database, è possibile visualizzare in anteprima le modifiche. Utilizzando questa opzione, è possibile visualizzare le modifiche apportate a tutti gli oggetti che fanno riferimento all'oggetto da rinominare.

La finestra di dialogo Anteprima modifiche contiene un riquadro superiore e un riquadro inferiore. Il riquadro superiore contiene una struttura in cui sono elencati gli oggetti che verranno modificati, mentre nel riquadro inferiore viene visualizzato lo script che verrà generato per apportare le modifiche. Quando si fa clic su un oggetto, nel riquadro superiore viene visualizzato il nome precedente, mentre in quello inferiore il nuovo nome. Per ulteriori informazioni, vedere Procedura: visualizzare l'anteprima delle modifiche di ridenominazione.

Sostituzione dei riferimenti a server e database

Nelle definizioni di oggetti o negli script, è possibile includere riferimenti a oggetti contenuti in altri database specificando i nomi dei database che li contengono. Se i riferimenti e gli oggetti sono su server diversi, i riferimenti devono inoltre specificare i nomi dei server per gli oggetti ai quali si fa riferimento. È possibile specificare database e server per nome o per variabile. Dopo avere creato questi riferimenti, qualora fosse necessario in seguito specificare un nome diverso, sostituire un nome con una variabile o viceversa o sostituire una variabile con un'altra variabile, sarà possibile utilizzare il refactoring per aggiornarli. Per ulteriori informazioni sui riferimenti tra database, vedere Cenni preliminari sui riferimenti tra database. Per ulteriori informazioni su come rinominare questi riferimenti, vedere Procedura: rinominare i riferimenti a un server o a un database.

Vedere anche

Attività

Procedura dettagliata: distribuzione delle modifiche di refactoring di un database

Concetti

Panoramica sulla terminologia di Database Edition

Altre risorse

Procedura dettagliata: ridenominazione di una colonna di database

Ridenominazione di oggetti di database