Creazione e modifica di script di database
Gli script di database sono file aggiuntivi che contengono istruzioni Transact-SQL o utilità come SQLCMD che non fanno parte della definizione dello schema del database. È possibile utilizzare gli script di database nel corso del processo di distribuzione (script pre-distribuzione e script post-distribuzione) oppure archiviare script di gestione generali nel progetto di database.
Se si rinomina un oggetto di database, è possibile utilizzare il refactoring del database per aggiornare automaticamente qualsiasi riferimento a quell'oggetto presente negli script.
Script di distribuzione
Quando si compila il progetto di database, lo script pre-distribuzione, le definizioni degli oggetti di database e lo script post-distribuzione vengono compilati in un file schema di database con estensione dbschema. È possibile specificare un solo script pre-distribuzione e un solo script post-distribuzione, ma è possibile utilizzare SQLCMD per includere altri script dall'interno di quegli script. Per ulteriori informazioni, vedere Inserimento di più script nel processo pre-distribuzione o post-distribuzione. Quando si compila il progetto di database, tutti gli script inclusi vengono uniti nello script di compilazione.
Per impostazione predefinita, il progetto di database contiene uno script pre-distribuzione vuoto e uno script post-distribuzione vuoto. I nomi di questi script sono script.predeployment.sql e script.postdeployment.sql.
Specificare uno script pre-distribuzione impostando la proprietà Build Action del file di script su PreDeploy. Analogamente, specificare uno script post-distribuzione impostando la proprietà Build Action del file di script su PostDeploy. Se si definisce uno script come script pre-distribuzione o post-distribuzione e quindi se ne definisce un altro nello stesso modo, l'azione di compilazione del primo script verrà impostata automaticamente su Non incluso nella compilazione. Questo comportamento è stato definito in fase di progettazione perché per ogni progetto di database è possibile definire un solo script pre-distribuzione e un solo script post-distribuzione.
Importante |
---|
La distribuzione potrebbe non riuscire se si modificano i nomi o le caratteristiche degli oggetti a cui fanno riferimento gli script di distribuzione, ma non si aggiornano i riferimenti negli script. È ad esempio possibile inserire dati in una tabella nello script post-distribuzione. Se si rinomina la tabella, ma non si aggiorna lo script, le istruzioni INSERT avranno esito negativo. Se si rinomina la tabella utilizzando il refactoring di ridenominazione, lo script di distribuzione verrà aggiornato. |
Inserimento di più script nel processo pre-distribuzione o post-distribuzione
Per utilizzare più script nel processo pre-distribuzione o post-distribuzione, è necessario selezionare uno script di primo livello che includa altri script pre-distribuzione o post-distribuzione tramite l'istruzione seguente:
SQLCMD :r .\FileName.sql
Script aggiuntivi
Oltre agli script di distribuzione, è possibile aggiungere altri script di tipo generico al progetto di database. È possibile organizzare questi script creando sottocartelle nella cartella Scripts del progetto di database. Quando si apre uno qualsiasi di questi script aggiuntivi nell'Editor Transact-SQL, è possibile connettersi al server database ed eseguire lo script in modo completo o parziale. Se si eseguono script di verifica di routine, questo approccio è un modo pratico per tenere unito ogni script al relativo database associato e per inserire lo script e il database nello stesso sistema di controllo della versione dello schema di database. La proprietà Build Action di questi script è impostata su Non incluso nella compilazione.
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à |
Contenuto di supporto |
---|---|
Specificare script pre-distribuzione o post-distribuzione: è possibile aggiungere istruzioni Transact-SQL agli script da eseguire prima o dopo la distribuzione del database. Quando si importano oggetti e impostazioni da un database, gli script di distribuzione potrebbero essere aggiornati con istruzioni non rappresentate come oggetti di database, ad esempio autorizzazioni, definizioni di ruolo o firme. |
|
Specificare script di gestione o utilità: è possibile aggiungere script di gestione e utilità al progetto di database. È inoltre possibile aggiornare gli script quando si esegue il refactoring di oggetti nel progetto di database. |
|
Archiviare le modifiche: è possibile archiviare gli script nel controllo della versione in modo da poterli condividere con il team. Inserendo gli script nel controllo della versione, è possibile archiviare e recuperare gli script di distribuzione e manutenzione che corrispondevano a una versione precedente del database se questa versione deve essere servita. |
|
Risolvere i problemi: è possibile acquisire ulteriori informazioni sulla risoluzione dei problemi comuni con i progetti server e di database. |
Scenari correlati
Creazione e modifica di oggetti server e di database
Quando si modificano le definizioni degli oggetti nel progetto e quindi si distribuiscono queste modifiche in un server o database di destinazione, il database o il server viene aggiornato.Refactoring del codice e dei dati del database
È possibile utilizzare il refactoring del database per eliminare alcune attività ripetitive e facilmente soggette a errori, ad esempio rinominando tutti i riferimenti a un oggetto, specificando nomi completi, espandendo i caratteri jolly oppure spostando un oggetto in un nuovo schema.Compilazione e distribuzione di database in un ambiente di sviluppo isolato
Dopo avere modificato gli oggetti nel progetto, compilare e distribuire le modifiche nell'ambiente di sviluppo isolato.Analisi del codice di database per migliorare la qualità del codice
È possibile analizzare il codice del database per trovare e correggere problemi comuni di progettazione, denominazione e prestazioni.
Vedere anche
Concetti
Scrittura e modifica del codice del database
Ridenominazione di tutti i riferimenti a un oggetto di database
Compilazione e distribuzione di database in un ambiente di sviluppo isolato
Compilazione e distribuzione di database in un ambiente di produzione o gestione temporanea