Condividi tramite


Cenni preliminari sui progetti di database

Aggiornamento: novembre 2007

Un progetto di database è una rappresentazione non in linea di uno schema di database. Questa rappresentazione contiene le definizioni degli oggetti e gli script di distribuzione necessari per creare un'istanza separata di tale database o per aggiornare un'istanza esistente. La creazione di un progetto di database consente di sottoporre il database al controllo delle versioni.

Con i progetti di database è possibile eseguire le attività seguenti:

  • Creare e distribuire un database.

  • Sottoporre il database al controllo delle versioni.

  • Creare un progetto di database importando gli oggetti da un database distribuito esistente.

  • Confrontare il progetto di database con un database distribuito.

  • Importare le modifiche apportate a un database distribuito affinché il progetto di database corrisponda al database distribuito.

  • Aggiungere, modificare ed eliminare oggetti di database e script.

  • Creare uno o più piani di generazione dati per popolare il database con i dati di test.

Importazione di schemi di database

È possibile importare uno schema di database da un'istanza del database o da uno script. Quando si importa uno schema di database, questo viene convalidato e le istruzioni che non risultano comprensibili vengono inserite nel file ScriptsIgnoredOnImport.sql. Se si importano definizioni di oggetto che fanno riferimento a oggetti non più esistenti, è necessario risolvere tali errori prima di generare e distribuire il progetto di database. È possibile correggere questo tipo di errore eliminando l'oggetto. Se, ad esempio, si importa una stored procedure che fa riferimento a una tabella non più esistente, è possibile rimuovere semplicemente la stored procedure.

Il processo di pulitura iniziale potrebbe richiedere una certa quantità di tempo quando si importa uno schema di database di grandi dimensioni. Tuttavia, una volta eliminati gli eliminati, Visual Studio Team System Database Edition controllerà che non vengano introdotti nuovi errori. Tutte le modifiche vengono convalidate quando si salva una definizione di oggetto modificata.

Struttura del progetto di database

Un progetto di database è costituito da un file dbproj e contiene tre sottocartelle predefinite, denominate Piani di generazione dati, Oggetti dello schema e Script. Ogni sottocartella viene descritta dettagliatamente più avanti in questo argomento. Esplora soluzioni offre una visualizzazione basata su file del progetto di database. Ogni elemento visualizzato in Esplora soluzioni corrisponde a un file o a una cartella nel disco. Al contrario, la finestra Visualizzazione schema offre una visualizzazione basata su oggetto che consente di identificare gli oggetti nel database, indipendentemente dal fatto che si tratti di file separati.

In Esplora soluzioni è possibile eseguire azioni sull'insieme del progetto o su singoli file. In Esplora soluzioni è possibile eseguire le azioni seguenti su un progetto di database:

  • Importa schema database
    È possibile importare le informazioni sullo schema da un database esistente specificato.

  • Importa script
    È possibile importare le informazioni sullo schema per uno o più oggetti da uno script che contiene definizioni degli oggetti.

  • Genera
    È possibile generare uno script di generazione che crea un database con lo stesso schema o sincronizza un database esistente con tale schema. Le proprietà del progetto di database controllano la distribuzione e le impostazioni nel database di destinazione.

  • Rigenera
    È possibile utilizzare questa opzione per generare il progetto, anche se non sono state apportate modifiche dopo l'ultima generazione.

  • Distribuisci
    È possibile distribuire il progetto di database in un database nuovo o esistente, in base alla configurazione selezionata. Questa azione consente inoltre di generare il progetto di database prima di distribuirlo, se non è aggiornato.

  • Pulisci
    È possibile eliminare qualsiasi script di generazione esistente generato in seguito a un'operazione di generazione, rigenerazione o distribuzione.

  • Aggiungi
    È possibile aggiungere cartelle e file di elementi del progetto al progetto di database. È possibile, ad esempio, aggiungere elementi del progetto che contengono definizioni degli oggetti di database.

  • Imposta come progetto di avvio
    È possibile specificare che il progetto di database venga contrassegnato come progetto di avvio per la soluzione. Se nella soluzione sono presenti altri progetti, è consigliabile impostarne un altro come progetto di avvio perché i progetti di database non contengono elementi dell'interfaccia utente.

  • Aggiungi soluzione a controllo del codice sorgente
    È possibile sottoporre al controllo delle versioni la soluzione che contiene il progetto di database in uso.

  • Taglia
    È possibile copiare il progetto negli Appunti. Con questa azione, il progetto viene rimosso dal percorso corrente nella soluzione quando lo si incolla in un'altra posizione.

  • Rimuovi
    È possibile rimuovere il progetto di database dalla soluzione corrente.

  • Rinomina
    È possibile rinominare il progetto di database. Se il progetto è sottoposto al controllo delle versioni, viene estratto per completare questa azione.

  • Scarica progetto
    È possibile scaricare il progetto di database. Può essere opportuno scaricare un progetto se si apre una soluzione di grandi dimensioni contenente più progetti e si desidera caricare solo i progetti sui quali si sta lavorando. Dopo avere scaricato un progetto di database, sarà possibile utilizzare il comando Ricarica progetto per ricaricarlo.

  • Mostra tutti i file
    È possibile attivare o disattivare questa impostazione per mostrare o nascondere i file esclusi dal progetto di database.

  • Proprietà
    È possibile visualizzare e personalizzare le proprietà del progetto, che controllano aspetti dei processi di generazione e di distribuzione per il progetto di database.

  • Aggiorna
    È possibile aggiornare gli oggetti di database visualizzati in Esplora soluzioni. In questo modo, verrà reinterpretato il contenuto dei file che contengono le definizioni degli oggetti.

Piani di generazione dati

Per impostazione predefinita, questa sottocartella contiene i piani creati per generare dati di test rappresentativi per un database distribuito.

È possibile eseguire le azioni seguenti nella sottocartella Piani di generazione dati:

  • Aggiungi nuovo elemento
    È possibile creare un elemento del progetto, ad esempio un piano di generazione dati, e aggiungerlo al progetto.

  • Aggiungi elemento esistente
    È possibile aggiungere un elemento esistente al progetto di database. Verrà creata una copia di tale elemento nella cartella del progetto o in una sottocartella di tale cartella.

  • Copia
    È possibile copiare negli Appunti tutti i i piani di generazione dati per il progetto.

Oggetti dello schema

Per impostazione predefinita, questa sottocartella contiene tutti i file contenenti le definizioni per gli oggetti nel progetto di database, raggruppati per tipo di oggetto.

È possibile eseguire le azioni seguenti nella sottocartella Oggetti dello schema:

  • Aggiungi nuovo elemento
    È possibile creare un elemento di progetto, ad esempio una definizione di tabella, e aggiungerlo al progetto.

  • Aggiungi elemento esistente
    È possibile aggiungere un elemento esistente al progetto di database. Verrà creata una copia di tale elemento nella cartella del progetto o in una sottocartella di tale cartella.

  • Copia
    È possibile copiare negli Appunti tutti gli oggetti dello schema nel progetto.

Gli oggetti dello schema di database sono definiti in un insieme di file sql archiviati nella cartella del progetto. La maggior parte degli oggetti sono definiti in file separati. Tra le eccezioni sono incluse le colonne in una tabella, specificate nel file che contiene la definizione della tabella, e i parametri di una stored procedure o funzione, specificati nel file che contiene la stored procedure o la funzione.

La proprietà Operazione di generazione per un file sql indica se il file viene analizzato per vedere se contiene la definizione di un oggetto del database. Per impostazione predefinita, i file che contengono definizioni di oggetti di database sono impostati su Generazione e altri script sql e file di vario tipo sono impostati su Non incluso nella generazione. La proprietà Operazione di generazione determina inoltre se il file verrà incluso nello script di generazione.

Il nome di ogni oggetto determina il nome del file e il tipo di oggetto ne determina l'estensione, nel modo seguente:

Tipo di oggetto di database

Nome

Funzione

NomeOggetto.function.sql

Indice

NomeOggetto.index.sql

Stored Procedure

NomeOggetto.proc.sql

Tabella

NomeOggetto.table.sql

Trigger

NomeOggetto.trigger.sql

Vista

NomeOggetto.view.sql

Vincolo di chiave primaria

NomeOggetto.pkey.sql

Vincolo della chiave esterna

NomeOggetto.fkey.sql

Vincolo della chiave univoca

NomeOggetto.ukey.sql

Vincolo CHECK

NomeOggetto.chkconst.sql

Vincolo predefinito

NomeOggetto.defconst.sql

Statistiche

NomeOggetto.statistic.sql

Se si definisce un oggetto all'interno del file sql il cui tipo di oggetto non corrisponde al tipo di oggetto implicito nel nome di file, verrà visualizzato un messaggio di errore nella finestra Elenco errori. Se ad esempio si aggiunge un file denominato MyTable.table.sql al progetto di database, ma all'interno di tale file viene definita una vista, verrà visualizzato un messaggio di errore nella finestra Elenco errori.

È possibile eseguire le azioni seguenti sui file nella sottocartella Oggetti dello schema:

  • Apri
    Apre il file nell'editor appropriato, a seconda del tipo di file. Per i file sql, ad esempio, viene aperto l'Editor T-SQL (Transact-SQL).

  • Apri con
    Apre il file che contiene la definizione dell'oggetto in un altro editor specificato.

  • Visualizza codice
    Apre il file nell'Editor T-SQL.

  • Escludi dal progetto
    Contrassegna il file come escluso dal progetto. I file esclusi non fanno parte dello script di generazione che verrà generato alla successiva generazione o distribuzione del progetto di database. Può essere necessario escludere un file se non è ancora completato e si desidera distribuire il resto del database.

  • Taglia
    Copia il file o i file selezionati negli Appunti e li elimina dal progetto di database.

  • Visualizza oggetto nella visualizzazione schema
    Apre la finestra Visualizzazione schema, se non è già visualizzata, ed evidenzia l'oggetto di database la cui definizione è contenuta nel file selezionato. Questa opzione è disponibile solo per i file sql che contengono definizioni di oggetti valide.

  • Copia
    Copia il file o i file selezionati negli Appunti.

  • Rinomina
    Rinomina il file. Con questa azione non viene eseguito il refactoring di ridenominazione sul contenuto del file, ma viene semplicemente rinominato il file.

  • Elimina
    Elimina il file o i file selezionati dal progetto di database e li rimuove dal disco. Viene chiesto di confermare l'eliminazione, perché si tratta di un'operazione permanente.

  • Proprietà
    Visualizza la finestra delle proprietà per il file o i file selezionati.

Script

Per impostazione predefinita, questa sottocartella contiene script di gestione, di pre-distribuzione e di post-distribuzione per il database. La proprietà Operazione di generazione è impostata su Non incluso nella generazione per gli script di gestione e su Predeploy o Postdeploy per gli script di distribuzione. È possibile disporre di un solo script pre-distribuzione e di un solo script post-distribuzione in un progetto di database. Gli script pre-distribuzione e di post-distribuzione includono spesso script aggiuntivi, i quali possono appartenere al progetto di database e avere la proprietà Operazione di generazione impostata su Non incluso nella generazione.

È possibile eseguire le azioni seguenti nella sottocartella Script:

  • Aggiungi nuovo elemento
    È possibile creare un elemento di progetto, ad esempio uno script di gestione, e aggiungerlo al progetto.

  • Aggiungi elemento esistente
    È possibile aggiungere un elemento esistente al progetto di database. Verrà creata una copia di tale elemento nella cartella del progetto o in una sottocartella di tale cartella.

  • Copia
    È possibile copiare negli Appunti tutti gli script del progetto.

Visualizzazione schema

La finestra Visualizzazione schema offre una visualizzazione alternativa del progetto di database in cui sono messi in evidenza gli oggetti di database contenuti. Né i piani di generazione dati, né gli script hanno voci corrispondenti nella finestra Visualizzazione schema, poiché questi tipi di elemento non contengono definizioni di oggetti di database.

È possibile eseguire le azioni seguenti sul nodo progetto nella finestra Visualizzazione schema.

  • Importa schema database
    È possibile importare le informazioni sullo schema da un database esistente specificato.

  • Importa script
    È possibile importare le informazioni sullo schema per uno o più oggetti da uno script che contiene definizioni degli oggetti.

  • Confronto schema
    È possibile confrontare le informazioni sullo schema per il progetto di database con quelle di un database distribuito.

  • Aggiungi
    È possibile aggiungere al progetto oggetti di database, tra cui tabelle, viste, stored procedure, funzioni inline, funzioni tabella, funzioni scalari, tipi di dati definiti dall'utente, gruppi di file, ruoli applicazione di database, ruoli di database e utenti di database.

  • Proprietà
    È possibile visualizzare le proprietà del database.

Nota:

Non è possibile aggiungere chiavi simmetriche, chiavi asimmetriche e certificati come oggetti nel progetto di database. È necessario crearli nello script pre-distribuzione. Se si importa lo schema da un database che contiene tali oggetti, lo script pre-distribuzione conterrà commenti segnaposto con i nomi delle chiavi e dei certificati. È necessario modificare lo script pre-distribuzione per creare tali oggetti.

  • Aggiorna
    È possibile aggiornare gli oggetti di database visualizzati nella finestra Visualizzazione schema. In questo modo, verrà reinterpretato il contenuto dei file che contengono le definizioni degli oggetti.

  • Esplora soluzioni
    È possibile passare lo stato attivo da Esplora soluzioni alla finestra Visualizzazione schema e viceversa.

  • Filtra visualizzazione schema
    È possibile alternare la visualizzazione degli oggetti per tipo di oggetto o per schema. È necessario selezionare un nodo progetto o un elemento all'interno di un progetto di database per alternare il raggruppamento.

Oggetti dello schema

Nella finestra Visualizzazione schema è presente un nodo per ogni progetto di database in Esplora soluzioni. Ogni nodo di progetto di database contiene tutte le definizioni degli oggetti nel progetto di database, raggruppate per tipo di oggetto o per schema.

È possibile eseguire le seguenti azioni sugli oggetti del database visualizzati nella finestra Visualizzazione schema.

  • Importa script
    È possibile importare le informazioni sullo schema per uno o più oggetti da uno script che contiene definizioni degli oggetti.

  • Apri
    È possibile aprire la definizione di un oggetto nell'Editor T-SQL. Le modifiche apportate al file potrebbero causare l'aggiornamento della finestra Visualizzazione schema. Se ad esempio si aggiungono colonne a una definizione di tabella, tali colonne verranno visualizzate nella finestra Visualizzazione schema.

  • Apri con
    È possibile aprire il file che contiene la definizione dell'oggetto in un altro editor specificato.

  • Aggiungi
    È possibile aggiungere al progetto oggetti di database, tra cui tabelle, viste, stored procedure, funzioni inline, funzioni tabella, funzioni scalari, tipi di dati definiti dall'utente, gruppi di file, ruoli applicazione di database, ruoli di database e utenti di database. È inoltre possibile aggiungere cartelle all'interno del progetto di database per organizzare gli oggetti.

  • Rinomina (sottomenu Effettua refactoring)
    È possibile rinominare l'oggetto di database. Se l'oggetto è sottoposto al controllo delle versioni, il file che contiene la definizione dell'oggetto viene estratto per completare questa azione. Questa azione richiama l'operazione di refactoring e può aggiornare tutti i riferimenti all'oggetto rinominato all'interno del progetto di database e qualsiasi progetto di unit test del database associato.

  • Visualizza file in Esplora soluzioni
    È possibile utilizzare questa opzione per trovare il file in Esplora soluzioni che contiene la definizione dell'oggetto di database selezionato.

  • Proprietà
    È possibile visualizzare le proprietà dell'oggetto. Praticamente tutte le proprietà disponibili per gli oggetti nella finestra Visualizzazione schema sono di sola lettura. Per modificare le proprietà, è necessario modificare la definizione dell'oggetto.

Modifica della struttura del progetto predefinito

La struttura descritta in questo argomento è la struttura di progetto predefinita in Esplora soluzioni, ma è possibile ridisporre il contenuto del progetto. È possibile creare cartelle aggiuntive, ridenominare le cartelle esistenti e spostare i file all'interno del progetto trascinandoli o eseguendo un'operazione Taglia e Incolla. Le definizioni degli oggetti del database sono identificate dalla proprietà Operazione di generazione impostata su Generazione, non dal loro percorso all'interno del progetto. Anche gli script di distribuzione sono identificati dalla proprietà Operazione di generazione impostata su PreDeploy o PostDeploy. La proprietà Operazione di generazione per gli altri file del progetto è impostata su Non incluso nella generazione.

È possibile alternare la visualizzazione della finestra Visualizzazione schema solo per visualizzare il contenuto di un progetto per tipo di oggetto o per schema.

Vedere anche

Concetti

Cenni preliminari sull'utilizzo di oggetti di database

Panoramica sulla terminologia di Database Edition

Altre risorse

Panoramica sulla creazione e sulla pubblicazione di database in un ambiente di team

Generazione e distribuzione di schemi di database

Utilizzo di script di database

Utilizzo di progetti di database in un ambiente di team

Procedure dettagliate (creazione e aggiornamento di schemi di database con controllo delle versioni)