Condividi tramite


Panoramica delle impostazioni del progetto di database

Le impostazioni del progetto di database vengono utilizzate per controllare gli aspetti del database e le configurazioni della build. Queste impostazioni possono essere suddivise nelle seguenti categorie:

  • Impostazioni del progetto

  • Eventi di compilazione

  • Riferimenti

  • Compilazione

  • Distribuzione

Le impostazioni del progetto, gli eventi di compilazione e le proprietà di distribuzione vengono archiviati nel progetto di database e condivisi attraverso il controllo delle versioni.

Nota

Le impostazioni specifiche dell'utente vengono memorizzate nel file dbproj.user. Le impostazioni specifiche del progetto vengono memorizzate nel file dbproj.

Impostazioni del progetto

Le impostazioni della tabella seguente si applicano a tutte le configurazioni di questo progetto di database.

Campo

Valore predefinito

Descrizione

Versione progetto

Versione di SQL Server specificata quando è stato creato il progetto di database.

Consente di specificare la versione di SQL Server per il progetto di database in questione.

Regole di confronto per il modello di database

Inglese (Stati Uniti) (1033) - CI

Consente di specificare le regole predefinite in base alle quali i dati vengono ordinati e confrontati nel database sottostante di SQL Server Compact Edition in cui è archiviato il modello del database. Per questa impostazione è necessario specificare un valore che si avvicini il più possibile alle regole di confronto del database di destinazione. È possibile fare una distinzione in base a maiuscole e minuscole. Ad esempio è possibile utilizzare regole di confronto senza distinzione tra maiuscole e minuscole per il modello e regole di confronto con distinzione tra maiuscole e minuscole per il database. È possibile ignorare le regole di confronto predefinite nelle definizioni degli oggetti.

NotaNota
Le regole di confronto predefinite sono identiche per tutte le piattaforme.Il valore predefinito non viene modificato in modo da corrispondere alle impostazioni locali correnti.È necessario impostare manualmente le regole di confronto predefinite in base al valore appropriato per le impostazioni locali in uso.

Schema predefinito

dbo

Consente di specificare lo schema predefinito in cui vengono creati gli oggetti. È possibile ignorare questa impostazione quando si modificano una o più definizioni di oggetto.

Includi nome schema nel nome file

Consente di specificare se nei nomi file viene incluso lo schema come prefisso, ad esempio dbo.Products.table.sql. Se questa casella di controllo viene deselezionata, il formato dei nomi file degli oggetti sarà NomeOggetto.ObjectType.sql

File delle proprietà del catalogo

Properties\CatalogProperties.catalogproperties

Sono contenute le impostazioni delle proprietà dettagliate per il database di destinazione. Tutte le proprietà corrispondono alle proprietà di un database di SQL Server. Per ulteriori informazioni, vedere questo argomento sul sito Web Microsoft: Proprietà database (pagina Opzioni).

Impostazioni degli eventi di compilazione

È possibile utilizzare queste impostazioni per specificare una riga di comando da eseguire prima dell'avvio dell'operazione di compilazione e un'altra riga di comando da eseguire al termine di tale operazione.

Campo

Valore predefinito

Descrizione

Riga di comando eventi pre-compilazione

Nessuna

Specifica la riga di comando da eseguire prima della compilazione del progetto. Scegliere Modifica pre-compilazione per modificare la riga di comando.

Riga di comando eventi post-compilazione

Nessuna

Specifica la riga di comando da eseguire dopo la compilazione del progetto. Scegliere Modifica post-compilazione per modificare la riga di comando.

Esegui evento post-compilazione

A compilazione completata

Specifica se la riga di comando successiva alla compilazione deve essere eseguita sempre, solo a compilazione completata o solo quando la compilazione aggiorna l'output del progetto (script di compilazione).

Per ulteriori informazioni, vedere Procedura: Specificare azioni personalizzate che eseguono la pre-compilazione o la post-compilazione e Finestra di dialogo Riga di comando eventi pre-compilazione/post-compilazione (progetti di database).

Riferimenti

È possibile utilizzare questa pagina per definire le variabili di server e database associate a un riferimento tra database. È inoltre possibile specificare i valori di tali variabili. Per ulteriori informazioni, vedere Utilizzo di riferimenti in progetti di database.

Impostazioni di compilazione

È possibile utilizzare queste impostazioni per influire sullo script di compilazione e sul database di destinazione. Queste impostazioni sono specifiche della configurazione e della piattaforma specificata e variano in genere da un utente all'altro.

Campo

Valore predefinito

Descrizione

Percorso dell'output di compilazione

. \sql\

Specifica se lo script viene generato quando si compila o si distribuisce il progetto di database. Se si specifica un percorso relativo, è necessario correlarlo al percorso del progetto di database. Se il percorso non esiste, viene creato.

Nome del file di output di compilazione

NomeProgettoDatabase.sql

Specifica il nome che si desidera assegnare allo script che viene generato quando si compila il progetto di database. Se è stata selezionata la casella di controllo Genera automaticamente nome del file di output di compilazione, il nome file che viene generato automaticamente sovrascrive qualsiasi valore specificato in questo campo.

Considera gli avvisi come errori

No

Consente di specificare se un avviso deve causare l'annullamento del processo di compilazione e distribuzione. Se questa casella di controllo viene deselezionata, gli avvisi vengono visualizzati, ma il processo di compilazione e distribuzione prosegue.

Questa impostazione è specifica del progetto, non dell’utente, ed è archiviata nel file con estensione dbproj.

Non visualizzare avvisi

Vuoto

Consente di specificare un elenco di numeri, delimitati da virgole o da punti e virgola, che permette di identificare gli avvisi annullati. Gli avvisi annullati non vengono visualizzati nella finestra Elenco errori e non influiscono sulla riuscita della compilazione, anche se si seleziona la casella di controllo Considera gli avvisi come errori.

NotaNota
È possibile eliminare anche un tipo di avviso per un file specifico, se non si desidera eliminare tale tipo in tutto il progetto di database.Per ulteriori informazioni, vedere Procedura: impedire la visualizzazione di uno o più tipi di avvisi.

Distribuzione

È possibile utilizzare queste impostazioni per controllare la distribuzione del progetto di database.

Campo

Valore predefinito

Descrizione

Configura impostazioni di distribuzione per

Impostazioni progetto

Consente di specificare se si desidera modificare le impostazioni di distribuzione per il progetto condiviso con altri sviluppatori o se si desidera modificare le impostazioni solo per l'ambiente di sviluppo isolato.

Azione di distribuzione

Crea uno script di distribuzione (.sql) e distribuisci nel database

Consente di specificare se si desidera distribuire lo script con estensione sql creato nel server di destinazione o creare lo script senza distribuirlo.

Nome script di distribuzione

NomeProgetto.sql

Consente di specificare il nome che si desidera utilizzare per lo script di distribuzione.

Connessione di destinazione

Vuoto

Consente di specificare le informazioni di connessione per il server database da utilizzare come destinazione per la configurazione della build specificata.

Nome database di destinazione

NomeProgettoDatabase

Consente di specificare il nome del database da creare o aggiornare nella connessione specificata nel campo Connessione di destinazione.

File di configurazione della distribuzione

Nel file di configurazione della distribuzione sono contenuti i dettagli specifici di ogni destinazione di distribuzione, come illustrato nella tabella seguente.

Campo

Valore predefinito

Descrizione

Regole di confronto di distribuzione

Utilizza regole di confronto del progetto.

Specifica le regole di confronto da utilizzare per il confronto dei modelli di origine e di destinazione durante la distribuzione. Se si fa clic su Utilizza regole di confronto del progetto, vengono utilizzate le regole di confronto di origine. Se si fa clic su Utilizza regole di confronto del server, vengono utilizzate le regole di confronto di destinazione.

Distribuisci proprietà del database

Sì

Consente di specificare se quando si distribuisce il progetto di database vengono distribuite le impostazioni CatalogProperties.catalogproperties.

Ricrea sempre database

No

Specifica se il database verrà eliminato e ricreato, anziché eseguire una distribuzione incrementale. Può essere necessario selezionare questa casella di controllo se, ad esempio, si desidera eseguire gli unit test del database per una distribuzione pulita del database. Se questa casella di controllo è deselezionata, il database esistente verrà aggiornato, non eliminato e ricreato.

Blocca distribuzione incrementale se dovesse verificarsi una perdita di dati

Specifica se la distribuzione viene bloccata nel caso in cui un aggiornamento provochi una perdita di dati. Se viene selezionata questa casella di controllo, le modifiche che causerebbero una perdita di dati comportano l'arresto della distribuzione e la visualizzazione di un errore, pertanto i dati non vengono persi. Ad esempio la distribuzione viene arrestata se una colonna varchar (50) viene modificata in varchar (30).

NotaNota
La distribuzione viene bloccata solo se le tabelle in cui si potrebbe verificare una perdita di dati contengono dati.Se invece non si perde alcun dato, la distribuzione continua.

Esegui script di distribuzione in modalità utente singolo

No

Specifica se è necessario attivare la modalità utente singolo per il database durante la distribuzione. Se si esegue la distribuzione in un server database condiviso, è necessario attivare la modalità utente singolo per il database quando si distribuiscono le modifiche del database. Grazie a questo passaggio, altri utenti non possono apportare modifiche mentre si distribuisce il progetto. Questa opzione non è disponibile se è stata abilitata la ricerca full-text nella scheda Impostazioni progetto delle proprietà per il progetto di database.

Nota importanteImportante
Quando il database è in modalità utente singolo, tutte le altre connessioni esistenti al database vengono eliminate non appena vengono distribuite le modifiche al database.Viene specificata la clausola ROLLBACK IMMEDIATE in modo che le transazioni in sospeso vengano interrotte non appena viene attivata la modalità utente singolo per il database.

Esegui backup del database prima della distribuzione

No

Specifica se il backup del database deve essere eseguito prima della distribuzione. Se questa casella di controllo è deselezionata, il backup non viene eseguito automaticamente. Se invece è selezionata, nello script pre-distribuzione vengono aggiunte istruzioni per eseguire il backup del database. Un'operazione di backup può essere lenta. Se si esegue la compilazione e la distribuzione in un ambiente di sviluppo isolato, è possibile decidere di non eseguire il backup del database prima di compilarlo e distribuirlo.

Nota importanteImportante
Prima di eseguire la distribuzione in un server di produzione, è necessario eseguire il backup del database.Se questa operazione non viene eseguita automaticamente, come parte del processo di compilazione e distribuzione, è necessario eseguirla manualmente prima di distribuire le modifiche.

Genera istruzioni DROP per oggetti contenuti nel database di destinazione, ma non nel progetto di database

No

Specifica se gli oggetti presenti nel database di destinazione, ma non nel progetto di database, devono essere eliminati come parte dello script di distribuzione. È possibile escludere alcuni file nel progetto per rimuoverli temporaneamente dallo script di compilazione. Tuttavia, potrebbe essere necessario lasciare le versioni esistenti di tali oggetti nel database di destinazione. Questa casella di controllo non ha effetto se è selezionata la casella di controllo Ricrea sempre database, perché il database verrà eliminato.

Non utilizzare le istruzioni ALTER ASSEMBLY per aggiornare i tipi CLR

No

Consente di specificare se vengono utilizzate le istruzioni ALTER ASSEMBLY per aggiornare i tipi CLR (Common Language Runtime) o se l'oggetto che consente di creare istanze del tipo CLR verrà invece eliminato e ricreato quando vengono distribuite le modifiche.

Nella tabella seguente vengono illustrate le impostazioni di distribuzione avanzate.

Campo

Valore predefinito

Descrizione

AbortOnFirstError

True

Consente di specificare se la distribuzione deve essere annullata quando si verifica il primo errore.

BuildtimeContributorsMustExist

True

Specifica se i collaboratori alla distribuzione (registrati durante la compilazione del progetto di database) devono essere registrati durante la distribuzione del progetto.

CheckNewConstraints

True

Quando i vincoli vengono creati o ricreati, consente di specificare se saranno creati con l'opzione NOCHECK attiva per impostazione predefinita. Alla fine dello script di distribuzione, sarà aggiunto un blocco di istruzioni che consentirà di controllare tutti i vincoli come set. Impostando questa proprietà su True, è possibile distribuire lo schema senza generare errori nei dati (a causa di un controllo o un vincolo di chiave esterna) durante il processo di distribuzione rinviando il controllo dei dati alla fine dello script di distribuzione.

CommentOutSetVarDeclarations

False

Consente di specificare se la dichiarazione di variabili SetVar verrà impostata come commento nello script di distribuzione generato. È possibile scegliere di eseguire questa operazione se si intende specificare i valori sulla riga di comando durante l'esecuzione della distribuzione tramite un strumento come SQLCMD.EXE.

DisableAndReenableDdlTriggers

True

Consente di specificare se i trigger Data Definition Language (DDL) vengono disabilitati all'inizio del processo di distribuzione e riabilitati alla fine di tale processo.

DropConstraintsNotInSource

True

Consente di specificare se i vincoli che non sono presenti nel progetto di database saranno eliminati dal database di destinazione quando si distribuiscono gli aggiornamenti in un database.

DropIndexesNotInSource

True

Consente di specificare se gli indici che non sono presenti nel progetto di database saranno eliminati dal database di destinazione quando si distribuiscono gli aggiornamenti in un database.

EnforceMinimalDependencies

False

Consente di specificare se i corpi di procedure, funzioni scalari e funzioni con valori di tabella vengono analizzati e interpretati. Se si abilita questa impostazione, le dipendenze all'interno dei corpi non vengono identificate, mentre saranno identificate le modifiche apportate alla definizione dell'oggetto. Impostando questa opzione su True, è possibile migliorare le prestazioni, tuttavia le dipendenze perse potrebbero provocare problemi durante la distribuzione.

GenerateDeployStateChecks

True

Consente di specificare se le istruzioni vengono generate nello script di distribuzione per verificare che il nome del database e il nome del server corrispondano ai nomi specificati nel progetto di database.

IgnoreAnsiNulls

False

Consente di specificare se le differenze nell'impostazione Null ANSI devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreAuthorizer

False

Consente di specificare se le differenze nel provider di autorizzazioni devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreColumnCollation

False

Consente di specificare se le differenze nelle regole di confronto colonna devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreComments

False

Consente di specificare se le differenze nei commenti devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreCryptographicProviderFilePath

False

Consente di specificare se le differenze nel percorso file del provider del servizio di crittografia devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreDdlTriggerOrder

False

Specifica se le differenze nell'ordine dei trigger Data Definition Language (DDL) devono essere ignorate o aggiornate quando si distribuiscono aggiornamenti in un database o in un server.

IgnoreDdlTriggerState

False

Consente di specificare se le differenze nello stato abilitato o disabilitato dei trigger Data Definition Language (DDL) devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreDefaultSchema

False

Specifica se è necessario aggiornare l'impostazione dello schema predefinito per l'utente, se è diversa, quando si distribuiscono gli aggiornamenti in un database.

IgnoreDmlTriggerOrder

False

Consente di specificare se le differenze nell'ordine dei trigger Data Manipulation Language (DML) devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreDmlTriggerState

False

Consente di specificare se le differenze nello stato abilitato o disabilitato dei trigger DML devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreExtendedProperties

False

Consente di specificare se le differenze nelle proprietà estese devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreFilegroupPlacement

True

Consente di specificare se le differenze nella posizione degli oggetti nei gruppi di file devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreFillFactor

True

Consente di specificare se le differenze nel fattore di riempimento per l'archiviazione degli indici devono essere ignorate o se deve essere inviato un avviso quando si distribuiscono gli aggiornamenti in un database.

IgnoreIdentitySeed

False

Consente di specificare se le differenze nel valore di inizializzazione per una colonna di identità devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreIncrement

False

Consente di specificare se le differenze nell'incremento per una colonna di identità devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreIndexOptions

False

Consente di specificare se le differenze nelle opzioni di indice devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreIndexPadding

True

Consente di specificare se le differenze nella spaziatura indice devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreKeywordCasing

True

Consente di specificare se le differenze nelle maiuscole e nelle minuscole delle parole chiave devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreLockHintsOnIndexes

False

Consente di specificare se le differenze negli hint di blocco negli indici devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreLoginSids

False

Consente di specificare se le differenze nell'ID di sicurezza (SID) devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreNotForReplication

False

Specifica se le differenze nell'impostazione NOT FOR REPLICATION devono essere ignorate o aggiornate quando si distribuiscono aggiornamenti in un database.

IgnoreObjectPlacementOnPartitionScheme

True

Consente di specificare se le differenze nel mapping delle partizioni per una tabella o un indice partizionato a gruppi di file devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnorePartitionSchemes

False

Specifica se le differenze negli schemi di partizione e nelle funzioni devono ignorate o aggiornate quando si distribuiscono aggiornamenti in un database.

IgnorePermissions

False

Consente di specificare se le differenze nelle autorizzazioni devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreQuotedIdentifiers

False

Consente di specificare se le differenze nell'impostazione degli identificatori delimitati devono essere ignorate o aggiornate quando si distribuiscono le modifiche in un database.

IgnoreRoleMembership

False

Consente di specificare se le differenze nelle appartenenze al ruolo degli accessi devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreRouteLifetime

True

Consente di specificare se le differenze nel tempo di conservazione della route nella tabella di routing da parte di SQL Server devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreSemicolonBetweenStatements

True

Consente di specificare se le differenze nei punti e virgola tra le istruzioni Transact-SQL devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreStatisticsSample

True

Consente di specificare se le differenze nell'esempio utilizzato per CREATE STATISTICS saranno ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreTableOptions

False

Consente di specificare se le differenze nelle opzioni di tabella saranno ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreUserSettingsObjects

False

Consente di specificare se le differenze negli oggetti impostazioni utente saranno ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreWhitespace

True

Consente di specificare se le differenze nello spazio vuoto saranno ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreWithNocheckOnCheckContraints

False

Consente di specificare se le differenze nel valore della clausola WITH NOCHECK per i vincoli CHECK saranno ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IgnoreWithNocheckOnForeignKeys

False

Consente di specificare se le differenze nel valore della clausola WITH NOCHECK per le chiavi esterne saranno ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

IncludeTransactionalScripts

False

Consente di specificare se le istruzioni transazionali devono essere utilizzate dove possibile quando si esegue la distribuzione in un database.

ScriptDatabaseCollation

True

Consente di specificare se le differenze nelle regole di confronto database devono essere ignorate o aggiornate quando si distribuiscono gli aggiornamenti in un database.

TreatVerificationErrorsAsWarnings

False

Consente di specificare se gli errori rilevati durante la verifica della distribuzione devono essere trattati come avvisi. Il controllo viene effettuato sul piano di distribuzione generato prima che quest'ultimo venga eseguito sul database di destinazione. La verifica del piano consente di rilevare problemi quali la perdita di oggetti di sola destinazione, ad esempio gli indici, che devono essere eliminati per apportare una modifica. La verifica consentirà di rilevare anche le situazioni in cui dipendenze, quali una tabella o una visualizzazione, sono presenti a causa di un riferimento a un progetto composto, ma non esistono nel database di destinazione. È possibile scegliere di effettuare questo controllo per ottenere un elenco completo di tutti i problemi di distribuzione, anziché incorrere nell'interruzione della distribuzione al primo errore.

UnmodifiableObjectWarnings

True

Consente di specificare se devono essere generati avvisi quando vengono rilevate differenze negli oggetti che non possono essere modificati, ad esempio se le dimensioni o i percorsi dei file risultano differenti.

VerifyDeployment

True

Consente di specificare se prima della distribuzione devono essere effettuati i controlli che permettono di arrestare la distribuzione qualora vengano rilevati problemi che potrebbero bloccare l'esecuzione della distribuzione. Ad esempio la distribuzione potrebbe essere arrestata se le chiavi esterne presenti nel database di destinazione non esistono nel progetto di database, situazione che genera errori durante la distribuzione.

Vedere anche

Attività

Procedura: configurare le impostazioni di compilazione dei progetti di database e server

Procedura: configurare le impostazioni di distribuzione dei progetti di database e di server

Procedura: compilare un progetto di database per generare un file di schema compilato (con estensione dbschema)

Procedura: distribuire modifiche in un database nuovo o esistente

Procedura dettagliata: creazione e distribuzione di un nuovo database con controllo delle versioni

Procedura dettagliata: distribuzione delle modifiche a un database esistente con controllo della versione

Procedura: impedire la visualizzazione di uno o più tipi di avvisi

Procedura: definire le variabili per progetti di database

Concetti

Cenni preliminari sui processi di compilazione e distribuzione di database