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.
Nota
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 |
Sì |
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.
Nota
È 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 |
Sì |
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).
Nota
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.
Importante
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.
Importante
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: distribuire modifiche in un database nuovo o esistente
Procedura dettagliata: creazione e distribuzione di un nuovo database con controllo delle versioni
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