Condividi tramite


Considerazioni prima della ridenominazione di oggetti di database

Prima di rinominare un oggetto di database in Visual Studio Premium, è necessario considerare quanto segue:

Ridenominazione delle colonne nelle visualizzazioni

Effetti degli errori di compilazione

Effetti sui piani di generazione dati

Effetti sugli unit test

Effetti su script Transact-SQL

Ridenominazione delle colonne nelle visualizzazioni

Una visualizzazione è costituita da un'istruzione che seleziona colonne da tabelle o altre visualizzazioni. Le tabelle utilizzate nella visualizzazione sono definite tabelle di base o sottostanti. Il codice riportato di seguito, ad esempio, crea una visualizzazione basata sulla tabella HumanResources.Employee:

CREATE VIEW dbo.vEmployeeTest
AS 
     SELECT EmployeeID, Title
       FROM HumanResources.Employee

Quando si rinomina una colonna in una visualizzazione, la colonna non viene rinominata nella tabella sottostante. Per il nome nella visualizzazione, invece, viene utilizzato un alias, come negli esempi seguenti:

CREATE VIEW dbo.vEmployeeTest
AS 
     SELECT EmployeeID, Title AS JobTitle
       FROM HumanResources.Employee

CREATE VIEW dbo.vEmployeeTest (EmployeeID, JobTitle)
AS 
     SELECT EmployeeID, Title
       FROM HumanResources.Employee

Nota

Se una visualizzazione utilizza SELECT * per ottenere dati dalla tabella sottostante, l'asterisco (*) viene espanso per elencare le singole colonne. Per la colonna rinominata viene utilizzato un alias come negli esempi precedenti.

Se si desidera rinominare la colonna sia nella visualizzazione che nella tabella sottostante, rinominare la colonna nella tabella in modo che venga automaticamente aggiornata nella visualizzazione.

Effetti degli errori di compilazione

Quando si rinomina un oggetto di database in Visual Studio Premium, viene effettuato un tentativo di aggiornare altri oggetti di database, piani di generazione dati, unit test e script che fanno riferimento a tale oggetto. Mentre si utilizza un progetto di database, è possibile che venga eseguita un'azione che provoca un errore di compilazione e, successivamente, un'altra azione che corregge tale errore. Si potrebbe, ad esempio, eliminare una tabella e successivamente aggiornare una visualizzazione che dipende da tale tabella per rimuovere il riferimento alla tabella eliminata. Nel periodo compreso tra l'eliminazione della tabella e l'aggiornamento della visualizzazione, nel progetto saranno presenti errori di compilazione.

Se si rinomina un oggetto di database quando nel progetto sono presenti errori di compilazione, l'oggetto potrà comunque essere rinominato correttamente. Può non essere possibile, tuttavia, aggiornare correttamente tutti i riferimenti all'oggetto che viene rinominato. Se nel progetto sono presenti errori di compilazione, viene visualizzato un avviso nella finestra di dialogo Anteprima modifiche. Se si continua, l'oggetto verrà rinominato e verrà aggiornato il numero più elevato possibile di riferimenti. Se l'operazione viene annullata, sarà possibile correggere gli errori di compilazione e, successivamente, eseguire nuovamente l'operazione di ridenominazione.

Effetti sui piani di generazione dati

Quando si rinomina un oggetto di database in Visual Studio Premium o Visual Studio Ultimate, viene effettuato un tentativo di aggiornare i piani di generazione dati che fanno riferimento a tale oggetto. È tuttavia necessario tenere presenti le considerazioni seguenti:

  • Prima di rinominare un oggetto, è necessario salvare gli eventuali piani di generazione dati aperti nell'Editor. Se sono aperti piani di generazione quando si tenta di rinominare un oggetto, tutti i piani di generazione dati aperti verranno salvati e chiusi automaticamente e l'operazione di ridenominazione proseguirà.

  • È necessario aggiornare manualmente i piani di generazione dati che utilizzano generatori di dati associati a dati.

Per ulteriori informazioni, vedere Generazione di dati di test per i database tramite generatori di dati.

Effetti sugli unit test

Le istruzioni Transact-SQL in uno unit test fanno in genere riferimento agli oggetti di database specificati in ValidationConnectionString e ExecutionConnectionString dello unit test. Di seguito sono riportati due casi diversi:

  • Le istruzioni Transact-SQL in uno unit test possono fare riferimento a oggetti in altri database.

  • Le istruzioni Transact-SQL in uno unit test possono fare riferimento a oggetti nello stesso database, ma in schemi diversi.

Quando si rinomina un oggetto di database in Visual Studio Premium, viene effettuato un tentativo di aggiornare gli unit test della soluzione che fanno riferimento a tale oggetto. Nei casi indicati in precedenza, può non essere possibile aggiornare gli unit test. Per aggiornare gli unit test quando si rinomina un oggetto di database, è necessario assicurarsi di utilizzare il nome completo degli oggetti negli unit test. Se si utilizzano nomi completi negli unit test, il motore di refactoring potrà aggiornarli ogni volta che viene rinominato un oggetto dello schema.

Per ulteriori informazioni sugli unit test, vedere Verifica del codice del database tramite unit test.

Effetti su script Transact-SQL

Gli script Transact-SQL in un progetto di database fanno in genere riferimento agli oggetti dello schema nel database del progetto. Di seguito sono riportati due casi diversi:

  • Le istruzioni Transact-SQL in uno script possono fare riferimento a oggetti in altri database.

  • Le istruzioni Transact-SQL in uno script possono fare riferimento a oggetti nello stesso database, ma in schemi diversi.

Quando si rinomina un oggetto di database in Visual Studio Premium, viene effettuato un tentativo di aggiornare gli script della soluzione che fanno riferimento a tale oggetto. Nei casi indicati in precedenza, può non essere possibile aggiornare gli script. Per aggiornare gli script quando si rinomina un oggetto di database, è necessario assicurarsi di utilizzare il nome completo degli oggetti negli script. Se si utilizzano nomi completi negli script, il motore di refactoring potrà aggiornarli ogni volta che viene rinominato un oggetto dello schema.

Per ulteriori informazioni sugli script, vedere Creazione e modifica di script di database.

Sicurezza

Se un errore impedisce il completamento di un'operazione di refactoring, le informazioni sull'errore vengono scritte nel log eventi dell'applicazione, che può essere aperto da qualsiasi utente che dispone delle autorizzazioni di utente normale. Se le informazioni dello schema sono considerate riservate e possono comparire nel log, è possibile cancellare il log o limitare l'accesso al computer client.

Vedere anche

Concetti

Ridenominazione di tutti i riferimenti a un oggetto di database