Condividi tramite


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.

Nota importanteImportante

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

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