Parametri, proprietà e variabili SQLCMD per Publish di SqlPackage

L'operazione di pubblicazione tramite SqlPackage consente di aggiornare in modo incrementale lo schema di un database di destinazione affinché corrisponda alla struttura di un database di origine. La pubblicazione di un pacchetto di distribuzione contenente dati utente per tutte le tabelle o solo per un subset di tabelle comporta l'aggiornamento dei dati di tabella oltre allo schema. La distribuzione dei dati sovrascrive lo schema e i dati nelle tabelle esistenti del database di destinazione. La distribuzione dei dati non modifica lo schema e i dati esistenti nel database di destinazione per le tabelle non incluse nel pacchetto di distribuzione. È possibile creare un nuovo database tramite l'azione di pubblicazione quando l'utente autenticato ha le autorizzazioni per la creazione di database. Le autorizzazioni necessarie per l'azione di pubblicazione in un database esistente sono db_owner.

Nota

Anche se Microsoft Entra ID è il nuovo nome per Azure Active Directory (Azure AD), per evitare l'interruzione degli ambienti esistenti, Azure AD rimane ancora in alcuni elementi hardcoded, ad esempio campi dell'interfaccia utente, provider di connessioni, codici di errore e cmdlet. In questo articolo i due nomi sono intercambiabili.

Sintassi della riga di comando

SqlPackage avvia le azioni specificate usando i parametri, le proprietà e le variabili SQLCMD indicati nella riga di comando.

SqlPackage /Action:Publish {parameters} {properties} {sqlcmd variables}

Nota

Quando viene estratto un database con credenziali utente di autenticazione SQL, la password viene sostituita con una password diversa con una complessità adeguata. Si presuppone che la password dell'utente venga modificata dopo la pubblicazione del pacchetto dacpac.

Esempi

# example publish from Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example publish using short form parameter names, skips schema validation
SqlPackage /a:Publish /tsn:"{yourserver}.database.windows.net,1433" /tdn:"AdventureWorksLT" /tu:"sqladmin" \
    /tp:"{your_password}" /sf:"C:\AdventureWorksLT.dacpac" /p:VerifyDeployment=False

# example publish using Microsoft Entra managed identity
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example publish connecting using Microsoft Entra username and password
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;User ID={yourusername};Password={yourpassword}"

# example publish connecting using Microsoft Entra universal authentication
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" /UniversalAuthentication:True \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example publish with 2 SQLCMD variables
# as seen in a post deployment script for user passwords
# https://github.com/Azure-Samples/app-sql-devops-demo-project/blob/main/sql/wwi-dw-ssdt/PostDeploymentScripts/AddUsers.sql
SqlPackage /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" \
    /v:ETLUserPassword="asecurestringaddedhere" /v:AppUserPassword="asecurestringaddedhere"
# example publish connecting using an access token associated with a service principal
$Account = Connect-AzAccount -ServicePrincipal -Tenant $Tenant -Credential $Credential
$AccessToken_Object = (Get-AzAccessToken -Account $Account -Resource "https://database.windows.net/")
$AccessToken = $AccessToken_Object.Token

SqlPackage /at:$AccessToken /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# OR
SqlPackage /at:$($AccessToken_Object.Token) /Action:Publish /SourceFile:"C:\AdventureWorksLT.dacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Parametri per l'azione Publish

Parametro Forma breve valore Description
/AccessToken: /at: {string} Specifica il token di accesso per l'autenticazione basata su token da usare per la connessione al database di destinazione.
/Action: /a: Pagina Specifica l'azione da eseguire.
/AzureCloudConfig: /acc: {string} Specifica gli endpoint personalizzati per la connessione a Microsoft Entra ID nel formato: AzureActiveDirectoryAuthority={value};DatabaseServicePrincipalName={value}".
/AzureKeyVaultAuthMethod: /akv: {Interactive|ClientIdSecret} Specifica il metodo di autenticazione usato per accedere ad Azure Key Vault se un'operazione di pubblicazione include modifiche a una tabella o colonna crittografata.
/ClientId: /cid: {string} Specifica l'ID client da usare nell'autenticazione con Azure Key Vault, quando necessario
/DeployReportPath: /drp: {string} Specifica un percorso file facoltativo in cui restituire come output il file XML del report di distribuzione.
/DeployScriptPath: /dsp: {string} Specifica un percorso file facoltativo in cui restituire come output lo script di distribuzione. Per una distribuzione di Azure, se sono disponibili comandi Transact-SQL per creare o modificare il database master, verrà scritto uno script nello stesso percorso, ma con "Filename_Master.sql" come nome del file di output.
/Diagnostics: /d: {True|False} Specifica se la registrazione diagnostica viene restituita come output nella console. Il valore predefinito è False.
/DiagnosticsFile: /df: {string} Specifica un file per archiviare i log di diagnostica.
/MaxParallelism: /mp: {int} Specifica il grado di parallelismo per le operazioni simultanee in esecuzione su un database. Il valore predefinito è 8.
/ModelFilePath: /mfp: {string} Specifica il percorso del file per eseguire la sostituzione di model.xml nel file di origine. L'uso di questa impostazione può causare un errore di distribuzione e/o una perdita di dati imprevista. Questa impostazione è destinata all'uso solo per la risoluzione dei problemi relativi alla pubblicazione, all'importazione o alla generazione di script.
/OverwriteFiles: /of: {True|False} Specifica se i file esistenti devono essere sovrascritti tramite SqlPackage. Se si specifica False e viene rilevato un file esistente, SqlPackage interrompe l'azione. Il valore predefinito è True.
/Profile: /pr: {string} Specifica il percorso file a un profilo di pubblicazione dell'applicazione livello dati. Il profilo consente di definire una raccolta di proprietà e variabili da utilizzare durante la generazione di output.
/Properties: /p: {NomeProprietà}={Valore} Specifica una coppia nome/valore per una proprietà action-specific;{PropertyName}={Value}.
/Quiet: /q: {True|False} Specifica se la notifica dettagliata dell'interfaccia utente viene eliminata. Il valore predefinito è False.
/ReferencePaths: /rp: {NomeProprietà}={Valore} Specifica le directory aggiuntive in cui cercare i riferimenti con estensione dacpac.
/Secret: /secr: {string} Specifica il segreto client da usare nell'autenticazione con Azure Key Vault, quando necessario
/SourceFile: /sf: {string} Specifica il file di origine da usare come origine dell'azione anziché un database dall'archiviazione locale. Se si utilizza questo parametro, non deve essere valido nessun altro parametro di origine.
/SourceConnectionString: /scs: {string} Specifica una stringa di connessione valida di SQL Server o Azure al database di origine. Se questo parametro viene specificato, deve essere usato esclusivamente per altri parametri di origine.
/SourceDatabaseName: /sdn: {string} Definisce il nome del database di origine.
/SourceEncryptConnection: /sec: {Optional|Mandatory|Strict|True|False} Specifica se deve essere utilizzata la crittografia SQL per la connessione al database di origine. Il valore predefinito è True.
/SourceHostNameInCertificate: /shnic: {string} Specifica il valore che viene usato per la convalida del certificato TLS/SSL di SQL Server di origine quando il livello di comunicazione è crittografato tramite TLS.
/SourcePassword: /sp: {string} Per gli scenari di autenticazione di SQL Server, definisce la password da usare per accedere al database di origine.
/SourceServerName: /ssn: {string} Definisce il nome del server che ospita il database di origine.
/SourceTimeout: /st: {int} Specifica il timeout in secondi per una connessione al database di origine.
/SourceTrustServerCertificate: /stsc: {True|False} Specifica se usare TLS per crittografare la connessione al database di origine e ignorare l'analisi della catena di certificati per convalidare l'attendibilità. Il valore predefinito è False.
/SourceUser: /su: {string} Per gli scenari di autenticazione di SQL Server, definisce l'utente SQL Server da usare per accedere al database di origine.
/TargetConnectionString: /tcs: {string} Specifica una stringa di connessione valida di SQL Server o Azure al database di destinazione. Se questo parametro viene specificato, deve essere usato esclusivamente per tutti gli altri parametri di destinazione.
/TargetDatabaseName: /tdn: {string} Specifica una sostituzione per il nome del database di destinazione del parametro Action di SqlPackage.
/TargetEncryptConnection: /tec: {Optional|Mandatory|Strict|True|False} Specifica se usare la crittografia SQL per la connessione al database di destinazione. Il valore predefinito è True.
/TargetHostNameInCertificate: /thnic: {string} Specifica il valore che viene usato per la convalida del certificato TLS/SSL di SQL Server di destinazione quando il livello di comunicazione è crittografato tramite TLS.
/TargetPassword: /tp: {string} Per gli scenari di autenticazione di SQL Server, definisce la password da usare per accedere al database di destinazione.
/TargetServerName: /tsn: {string} Definisce il nome del server che ospita il database di destinazione.
/TargetTimeout: /tt: {int} Specifica il timeout in secondi per stabilire una connessione al database di destinazione. Per Microsoft Entra ID è consigliabile che questo valore sia maggiore o uguale a 30 secondi.
/TargetTrustServerCertificate: /ttsc: {True|False} Specifica se usare TLS per crittografare la connessione al database di destinazione e ignorare l'analisi della catena di certificati per convalidare l'attendibilità. Il valore predefinito è False.
/TargetUser: /tu: {string} Per gli scenari di autenticazione di SQL Server, definisce l'utente SQL Server da usare per accedere al database di destinazione.
/TenantId: /tid: {string} Rappresenta l'ID tenant o il nome di dominio di Microsoft Entra. Questa opzione è necessaria per il supporto degli utenti guest o importati di Microsoft Entra e per gli account Microsoft, ad esempio outlook.com, hotmail.com o live.com. Se questo parametro viene omesso, verrà usato l'ID tenant predefinito per Microsoft Entra ID, supponendo che l'utente autenticato sia un utente nativo per questo tenant. In questo caso, tuttavia, gli utenti guest o importati e/o gli account Microsoft ospitati in questa istanza di Microsoft Entra ID non sono supportati e l'operazione avrà esito negativo.
Per altre informazioni, vedere Autenticazione universale con il database SQL e Azure Synapse Analytics (supporto di SSMS per MFA).
/ThreadMaxStackSize: /tmss: {int} Specifica le dimensioni massime in megabyte per il thread che esegue l'azione di SqlPackage. Questa opzione deve essere usata solo in presenza di eccezioni di stack overflow che si verificano durante l'analisi di istruzioni Transact-SQL molto grandi.
/UniversalAuthentication: /ua: {True|False} Specifica se deve essere usata l'autenticazione universale. Se impostato su True, viene attivato il protocollo di autenticazione interattivo per supportare l'autenticazione a più fattori. Questa opzione può essere usata anche per l'autenticazione di Microsoft Entra senza autenticazione a più fattori, usando un protocollo interattivo che richiede all'utente di immettere il nome utente e la password o l'autenticazione integrata (credenziali di Windows). Se /UniversalAuthentication è impostato su True, non è possibile specificare l'autenticazione di Microsoft Entra in SourceConnectionString (/scs). Se /UniversalAuthentication è impostato su False, l'autenticazione di Microsoft Entra deve essere specificata in SourceConnectionString (/scs).
Per altre informazioni sull'autenticazione universale di Active Directory, vedere Autenticazione universale con database SQL e Azure Synapse Analytics (supporto SSMS per MFA).
/Variables: /v: {NomeProprietà}={Valore} Specifica una coppia nome/valore per una variabile specifica dell'azione: {NomeVariabile}={Valore}. Nel file DACPAC è incluso l'elenco di variabili SQLCMD valide. Viene generato un errore se non viene fornito un valore per ogni variabile.

Proprietà specifiche dell'azione Pubblica

Proprietà valore Description
/p: AdditionalDeploymentContributorArguments=(STRING) Specifica altri argomenti per i collaboratori alla distribuzione Questa proprietà deve essere un elenco di valori separati da punti e virgola.
/p: AdditionalDeploymentContributorPaths=(STRING) Specifica i percorsi per caricare collaboratori alla distribuzione aggiuntivi. Questa proprietà deve essere un elenco di valori separati da punti e virgola.
/p: AdditionalDeploymentContributors=(STRING) Specifica altri collaboratori alla distribuzione da eseguire durante la distribuzione del dacpac Questa proprietà deve essere un elenco di ID o nomi di collaboratori di compilazione completi separati da punti e virgola.
/p: AllowDropBlockingAssemblies=(BOOLEAN 'False') Questa proprietà viene utilizzata dalla distribuzione SqlClr per determinare l'eliminazione di tutti gli assembly di blocco come parte del piano di distribuzione. Per impostazione predefinita, tutti gli assembly di blocco o di riferimento bloccheranno l'aggiornamento di un assembly se l'assembly di riferimento deve essere eliminato.
/p: AllowExternalLanguagePaths=(BOOLEAN 'False') Consente di usare percorsi di file, se disponibili, per generare istruzioni di linguaggi esterni.
/p: AllowExternalLibraryPaths=(BOOLEAN 'False') Consente di usare percorsi di file, se disponibili, per generare istruzioni di librerie esterne.
/p: AllowIncompatiblePlatform=(BOOLEAN 'False') Specifica se tentare l'azione indipendentemente dalle piattaforme SQL Server incompatibili.
/p: AllowTableRecreation=(BOOLEAN 'True') Specifica se consentire la ricreazione della tabella durante la distribuzione, se necessario per eseguire la modifica dello schema. La ricreazione tabella ricompila la tabella mantenendo i dati, ma può avere un impatto significativo sulle prestazioni.
/p: AllowUnsafeRowLevelSecurityDataMovement=(BOOLEAN 'False') Non bloccare il movimento di dati in una tabella con sicurezza a livello di riga se questa proprietà è impostata su true. Il valore predefinito è false.
/p: AzureSharedAccessSignatureToken=(STRING) Token di firma di accesso condiviso di Azure Vedere SqlPackage per Azure Synapse Analytics e SqlPackage con dati nei file Parquet.
/p: AzureStorageBlobEndpoint=(STRING) Endpoint di archiviazione BLOB di Azure, vedere SqlPackage per Azure Synapse Analytics e SqlPackage con dati nei file Parquet.
/p: AzureStorageContainer=(STRING) Contenitore di archiviazione BLOB di Azure, vedere SqlPackage per Azure Synapse Analytics e SqlPackage con dati nei file Parquet.
/p: AzureStorageKey=(STRING) Contenitore di archiviazione di Azure, vedere SqlPackage per Azure Synapse Analytics e SqlPackage con dati nei file Parquet.
/p: AzureStorageRootPath=(STRING) Percorso radice di archiviazione all'interno del contenitore. Senza questa proprietà, per impostazione predefinita il percorso è servername/databasename/timestamp/. Vedere SqlPackage per Azure Synapse Analytics e SqlPackage con dati nei file Parquet.
/p: BackupDatabaseBeforeChanges=(BOOLEAN 'False') Esegue il backup del database prima di distribuire qualsiasi modifica. Questa proprietà non è applicabile a database SQL di Azure.
/p: BlockOnPossibleDataLoss=(BOOLEAN 'True') Specifica che l'operazione verrà terminata durante il passaggio di convalida dello schema se le modifiche risultanti allo schema possono comportare una perdita di dati, inclusa la riduzione della precisione dei dati o una modifica del tipo di dati che richiede un'operazione di cast. Il valore predefinito (True) determina l'interruzione dell'operazione indipendentemente dal fatto che il database di destinazione contenga dei dati. Un'esecuzione con un valore False per BlockOnPossibleDataLoss può comunque non riuscire durante l'esecuzione del piano di distribuzione se sono presenti dati nella destinazione che non possono essere convertiti nel nuovo tipo di colonna.
/p: BlockWhenDriftDetected=(BOOLEAN 'True') Specifica se bloccare l'aggiornamento di un database il cui schema non corrisponde più alla relativa registrazione o di cui è stata annullata la registrazione.
/p: CommandTimeout=(INT32 '60') Specifica il timeout del comando in secondi quando si eseguono query in SQL Server.
/p: CommentOutSetVarDeclarations=(BOOLEAN 'False') Specifica se devono essere impostate come commento le dichiarazioni delle variabili SETVAR nello script di pubblicazione generato. È possibile scegliere questo approccio quando si desidera specificare i valori nella riga di comando durante la pubblicazione mediante uno strumento quale SQLCMD.EXE.
/p: CompareUsingTargetCollation=(BOOLEAN 'False') Con questa impostazione è possibile stabilire come vengono gestite le regole di confronto del database durante la distribuzione. Per impostazione predefinita, le regole di confronto del database verranno aggiornate se non corrispondono alle regole di confronto specificate dall'origine. Quando questa opzione è impostata, devono essere utilizzate le regole di confronto del server o del database di destinazione.
/p: CreateNewDatabase=(BOOLEAN 'False') Specifica se deve essere aggiornato il database di destinazione o se deve essere eliminato e ricreato durante la pubblicazione in un database.
/p: DatabaseEdition=({ Basic | Standard | Premium | DataWarehouse | GeneralPurpose | BusinessCritical | Hyperscale | Default } 'Default') Definisce l'edizione di un database SQL di Azure. Vedere Livelli di servizio del database SQL di Azure.
/p: DatabaseLockTimeout=(INT32 '60') Specifica il timeout del blocco a livello di database in secondi quando si eseguono query su SQL Server. Usare -1 per l'attesa indefinita.
/p: DatabaseMaximumSize=(INT32 '0') Definisce le dimensioni massime in GB di un database SQL di Azure.
/p: DatabaseServiceObjective=(STRING) Definisce il livello delle prestazioni di un database SQL di Azure, ad esempio "P0" o "S1".
/p: DeployDatabaseInSingleUserMode=(BOOLEAN 'False') Se true, il database è impostato sulla modalità utente singolo prima della distribuzione.
/p: DisableAndReenableDdlTriggers=(BOOLEAN 'True') Specifica se disabilitare i trigger DDL (Data Definition Language) all'inizio del processo di pubblicazione e riabilitarli alla fine dell'azione di pubblicazione.
/p: DisableIndexesForDataPhase=(BOOLEAN 'True') Disabilitare gli indici prima di importare i dati in SQL Server.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'False') Il parallelismo non verrà usato quando si ricompilano gli indici durante l'importazione di dati in SQL Server.
/p: DoNotAlterChangeDataCaptureObjects=(BOOLEAN 'True') Se true, gli oggetti Change Data Capture non sono modificati.
/p: DoNotAlterReplicatedObjects=(BOOLEAN 'True') Specifica se gli oggetti replicati vengono identificati durante la verifica.
/p: DoNotDropDatabaseWorkloadGroups=(BOOLEAN 'False') Se è false, l'oggetto Database WorkloadGroups presente nel database di destinazione che non è definito nel database di origine verrà eliminato durante la distribuzione.
/p: DoNotDropObjectType=(STRING) Tipo di oggetto che non deve essere rimosso quando DropObjectsNotInSource è True. Nomi di oggetto validi sono: Aggregates, ApplicationRoles, Assemblies, AssemblyFiles, AsymmetricKeys, BrokerPriorities, Certificates, ColumnEncryptionKeys, ColumnMasterKeys, Contracts, DatabaseOptions, DatabaseRoles, DatabaseTriggers, Defaults, ExtendedProperties, ExternalDataSources, ExternalFileFormats, ExternalTables, Filegroups, Files, FileTables, FullTextCatalogs, FullTextStoplists, MessageTypes, PartitionFunctions, PartitionSchemes, Permissions, Queues, RemoteServiceBindings, RoleMembership, Rules, ScalarValuedFunctions, SearchPropertyLists, SecurityPolicies, Sequences, Services, Signatures, StoredProcedures, SymmetricKeys, Synonyms, Tables, TableValuedFunctions, UserDefinedDataTypes, UserDefinedTableTypes, ClrUserDefinedTypes, Users, Views, XmlSchemaCollections, Audits, Credentials, CryptographicProviders, DatabaseAuditSpecifications, DatabaseEncryptionKeys, DatabaseScopedCredentials, Endpoints, ErrorMessages, EventNotifications, EventSessions, LinkedServerLogins, LinkedServers, Logins, MasterKeys, Routes, ServerAuditSpecifications, ServerRoleMembership, ServerRoles, ServerTriggers, ExternalStreams, ExternalStreamingJobs, DatabaseWorkloadGroups, WorkloadClassifiers, ExternalLibraries, ExternalLanguages. Questa proprietà può essere specificata più volte per indicare più opzioni.
/p: DoNotDropObjectTypes=(STRING) Elenco di valori delimitati da punti e virgola relativo ai tipi di oggetto che non devono essere rimossi quando DropObjectsNotInSource è true. Nomi di oggetto validi sono: Aggregates, ApplicationRoles, Assemblies, AssemblyFiles, AsymmetricKeys, BrokerPriorities, Certificates, ColumnEncryptionKeys, ColumnMasterKeys, Contracts, DatabaseOptions, DatabaseRoles, DatabaseTriggers, Defaults, ExtendedProperties, ExternalDataSources, ExternalFileFormats, ExternalTables, Filegroups, Files, FileTables, FullTextCatalogs, FullTextStoplists, MessageTypes, PartitionFunctions, PartitionSchemes, Permissions, Queues, RemoteServiceBindings, RoleMembership, Rules, ScalarValuedFunctions, SearchPropertyLists, SecurityPolicies, Sequences, Services, Signatures, StoredProcedures, SymmetricKeys, Synonyms, Tables, TableValuedFunctions, UserDefinedDataTypes, UserDefinedTableTypes, ClrUserDefinedTypes, Users, Views, XmlSchemaCollections, Audits, Credentials, CryptographicProviders, DatabaseAuditSpecifications, DatabaseEncryptionKeys, DatabaseScopedCredentials, Endpoints, ErrorMessages, EventNotifications, EventSessions, LinkedServerLogins, LinkedServers, Logins, MasterKeys, Routes, ServerAuditSpecifications, ServerRoleMembership, ServerRoles, ServerTriggers, ExternalStreams, ExternalStreamingJobs, DatabaseWorkloadGroups, WorkloadClassifiers, ExternalLibraries, ExternalLanguages.
/p: DoNotDropWorkloadClassifiers=(BOOLEAN 'False') Se è false, l'oggetto WorkloadClassifiers presente nel database di destinazione che non è definito nel database di origine verrà eliminato durante la distribuzione.
/p: DoNotEvaluateSqlCmdVariables=(BOOLEAN 'True') Specifica se le variabili SQLCMD non devono essere sostituite con valori
/p: DropConstraintsNotInSource=(BOOLEAN 'True') Specifica se i vincoli che non esistono nel file, con estensione dacpac, dello snapshot di database verranno eliminati dal database di destinazione durante la pubblicazione in un database.
/p: DropDmlTriggersNotInSource=(BOOLEAN 'True') Specifica se i trigger DML che non esistono nel file, con estensione dacpac, dello snapshot di database verranno eliminati dal database di destinazione durante la pubblicazione in un database.
/p: DropExtendedPropertiesNotInSource=(BOOLEAN 'True') Specifica se le proprietà estese che non esistono nel file, con estensione dacpac, dello snapshot di database verranno eliminate dal database di destinazione durante la pubblicazione in un database.
/p: DropIndexesNotInSource=(BOOLEAN 'True') Specifica se gli indici che non esistono nel file, con estensione dacpac, dello snapshot di database verranno eliminati dal database di destinazione durante la pubblicazione in un database.
/p: DropObjectsNotInSource=(BOOLEAN 'False') Specifica se gli oggetti che non esistono nel file (con estensione dacpac) di snapshot del database verranno eliminati dal database di destinazione durante la pubblicazione in un database. Questo valore ha la precedenza rispetto a DropExtendedProperties.
/p: DropPermissionsNotInSource=(BOOLEAN 'False') Specifica se le autorizzazioni che non esistono nel file, con estensione dacpac, dello snapshot di database verranno eliminate dal database di destinazione durante la pubblicazione di aggiornamenti in un database.
/p: DropRoleMembersNotInSource=(BOOLEAN 'False') Specifica se i membri del ruolo che non sono definiti nel file, con estensione dacpac, dello snapshot di database verranno eliminati dal database di destinazione durante la pubblicazione di aggiornamenti in un database.
/p: DropStatisticsNotInSource=(BOOLEAN 'True') Specifica se le statistiche che non esistono nel file snapshot del database (con estensione dacpac) vengono eliminati dal database di destinazione quando si esegue la pubblicazione in un database.
/p: EnclaveAttestationProtocol=(STRING) Specifica un protocollo di attestazione da usare con la funzionalità Always Encrypted basata su enclave.
/p: EnclaveAttestationUrl=(STRING) Specifica l'URL di attestazione dell'enclave (un endpoint servizio di attestazione) da usare con la funzionalità Always Encrypted basata su enclave.
/p: ExcludeObjectType=(STRING) Tipo di oggetto che deve essere ignorato durante la distribuzione. Nomi di oggetto validi sono: Aggregates, ApplicationRoles, Assemblies, AssemblyFiles, AsymmetricKeys, BrokerPriorities, Certificates, ColumnEncryptionKeys, ColumnMasterKeys, Contracts, DatabaseOptions, DatabaseRoles, DatabaseTriggers, Defaults, ExtendedProperties, ExternalDataSources, ExternalFileFormats, ExternalTables, Filegroups, Files, FileTables, FullTextCatalogs, FullTextStoplists, MessageTypes, PartitionFunctions, PartitionSchemes, Permissions, Queues, RemoteServiceBindings, RoleMembership, Rules, ScalarValuedFunctions, SearchPropertyLists, SecurityPolicies, Sequences, Services, Signatures, StoredProcedures, SymmetricKeys, Synonyms, Tables, TableValuedFunctions, UserDefinedDataTypes, UserDefinedTableTypes, ClrUserDefinedTypes, Users, Views, XmlSchemaCollections, Audits, Credentials, CryptographicProviders, DatabaseAuditSpecifications, DatabaseEncryptionKeys, DatabaseScopedCredentials, Endpoints, ErrorMessages, EventNotifications, EventSessions, LinkedServerLogins, LinkedServers, Logins, MasterKeys, Routes, ServerAuditSpecifications, ServerRoleMembership, ServerRoles, ServerTriggers, ExternalStreams, ExternalStreamingJobs, DatabaseWorkloadGroups, WorkloadClassifiers, ExternalLibraries, ExternalLanguages. Questa proprietà può essere specificata più volte per indicare più opzioni.
/p: ExcludeObjectTypes=(STRING) Un elenco di tipi di oggetto separati da punti e virgola che devono essere ignorati durante la distribuzione. Nomi di oggetto validi sono: Aggregates, ApplicationRoles, Assemblies, AssemblyFiles, AsymmetricKeys, BrokerPriorities, Certificates, ColumnEncryptionKeys, ColumnMasterKeys, Contracts, DatabaseOptions, DatabaseRoles, DatabaseTriggers, Defaults, ExtendedProperties, ExternalDataSources, ExternalFileFormats, ExternalTables, Filegroups, Files, FileTables, FullTextCatalogs, FullTextStoplists, MessageTypes, PartitionFunctions, PartitionSchemes, Permissions, Queues, RemoteServiceBindings, RoleMembership, Rules, ScalarValuedFunctions, SearchPropertyLists, SecurityPolicies, Sequences, Services, Signatures, StoredProcedures, SymmetricKeys, Synonyms, Tables, TableValuedFunctions, UserDefinedDataTypes, UserDefinedTableTypes, ClrUserDefinedTypes, Users, Views, XmlSchemaCollections, Audits, Credentials, CryptographicProviders, DatabaseAuditSpecifications, DatabaseEncryptionKeys, DatabaseScopedCredentials, Endpoints, ErrorMessages, EventNotifications, EventSessions, LinkedServerLogins, LinkedServers, Logins, MasterKeys, Routes, ServerAuditSpecifications, ServerRoleMembership, ServerRoles, ServerTriggers, ExternalStreams, ExternalStreamingJobs, DatabaseWorkloadGroups, WorkloadClassifiers, ExternalLibraries, ExternalLanguages.
/p: GenerateSmartDefaults=(BOOLEAN 'False') Fornisce automaticamente un valore predefinito durante l'aggiornamento di una tabella contenente dati con una colonna che non consente valori Null.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Specifica se sostituire tutti i nomi degli oggetti nei log con un valore hash casuale.
/p: IgnoreAnsiNulls=(BOOLEAN 'True') Specifica se le differenze nell'impostazione ANSI NULLS devono essere ignorate o aggiornate quando si pubblicano aggiornamenti in un database.
/p: IgnoreAuthorizer=(BOOLEAN 'False') Specifica se le differenze nel provider di autorizzazioni devono essere ignorate o aggiornate quando si pubblicano aggiornamenti in un database.
/p: IgnoreColumnCollation=(BOOLEAN 'False') Specifica se le differenze nelle regole di confronto colonna devono essere ignorate o aggiornate quando si pubblicano aggiornamenti in un database.
/p: IgnoreColumnOrder=(BOOLEAN 'False') Specifica se le differenze nell'ordine colonne della tabella devono essere ignorate o aggiornate durante la pubblicazione di un database.
/p: IgnoreComments=(BOOLEAN 'False') Specifica se le differenze nei commenti devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreCryptographicProviderFilePath=(BOOLEAN 'True') Specifica se le differenze nel percorso file del provider del servizio di crittografia devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreDatabaseWorkloadGroups=(BOOLEAN 'False') Specifica se escludere i gruppi di carico di lavoro presenti nella destinazione durante la distribuzione. Non verranno aggiunti, modificati o eliminati gruppi di carico di lavoro del database.
/p: IgnoreDdlTriggerOrder=(BOOLEAN 'False') Specifica se le differenze nell'ordine dei trigger Data Definition Language (DDL) devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database o in un server.
/p: IgnoreDdlTriggerState=(BOOLEAN 'False') Specifica se le differenze nello stato abilitato o disabilitato dei trigger Data Definition Language (DDL) devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreDefaultSchema=(BOOLEAN 'False') Specifica se le differenze nello schema predefinito devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreDmlTriggerOrder=(BOOLEAN 'False') Specifica se le differenze nell'ordine dei trigger Data Manipulation Language (DML) devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreDmlTriggerState=(BOOLEAN 'False') Specifica se le differenze nello stato abilitato o disabilitato dei trigger DML devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreExtendedProperties=(BOOLEAN 'False') Specifica se le differenze nelle proprietà estese devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreFileAndLogFilePath=(BOOLEAN 'True') Specifica se le differenze nel percorso dei file e dei file di log devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreFilegroupPlacement=(BOOLEAN 'True') Specifica se le differenze nella posizione degli oggetti nei FILEGROUP devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreFileSize=(BOOLEAN 'True') Specifica se le differenze nelle dimensioni dei file devono essere ignorate o se viene inviato un avviso quando si esegue la pubblicazione in un database.
/p: IgnoreFillFactor=(BOOLEAN 'True') Specifica se le differenze nel fattore di riempimento per l'archiviazione degli indici devono essere ignorate o se viene inviato un avviso quando si esegue la pubblicazione in un database.
/p: IgnoreFullTextCatalogFilePath=(BOOLEAN 'True') Specifica se le differenze nel percorso file per il catalogo full-text devono essere ignorate o se viene inviato un avviso quando si esegue la pubblicazione in un database.
/p: IgnoreIdentitySeed=(BOOLEAN 'False') Specifica se le differenze nel valore di inizializzazione per una colonna Identity devono essere ignorate o aggiornate quando si pubblicano aggiornamenti in un database.
/p: IgnoreIncrement=(BOOLEAN 'False') Specifica se le differenze nell'incremento per una colonna Identity devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreIndexOptions=(BOOLEAN 'False') Specifica se le differenze nelle opzioni di indice devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreIndexPadding=(BOOLEAN 'True') Specifica se le differenze nel riempimento indice devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreKeywordCasing=(BOOLEAN 'True') Specifica se le differenze nelle maiuscole e nelle minuscole delle parole chiave devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreLockHintsOnIndexes=(BOOLEAN 'False') Specifica se devono essere ignorate o aggiornate le differenze negli hint di blocco negli indici durante la pubblicazione in un database.
/p: IgnoreLoginSids=(BOOLEAN 'True') Specifica se le differenze nell'ID di sicurezza (SID) devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreNotForReplication=(BOOLEAN 'False') Specifica se le impostazioni non per la replica devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreObjectPlacementOnPartitionScheme=(BOOLEAN 'True') Specifica se la posizione di un oggetto in uno schema di partizione deve essere ignorata o aggiornata quando si esegue la pubblicazione in un database.
/p: IgnorePartitionSchemes=(BOOLEAN 'False') Specifica se le differenze negli schemi di partizione e nelle funzioni devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnorePermissions=(BOOLEAN 'False') Specifica se le differenze nelle autorizzazioni devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreQuotedIdentifiers=(BOOLEAN 'True') Specifica se le differenze nell'impostazione degli identificatori delimitati devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreRoleMembership=(BOOLEAN 'False') Specifica se ignorare o aggiornare le differenze nell'appartenenza al ruolo degli account di accesso durante la pubblicazione in un database.
/p: IgnoreRouteLifetime=(BOOLEAN 'True') Specifica se le differenze nel tempo di conservazione in SQL Server della route nella tabella di routing devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreSemicolonBetweenStatements=(BOOLEAN 'True') Specifica se le differenze nei punti e virgola tra le istruzioni T-SQL verranno ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreSensitivityClassifications=(BOOLEAN 'False') Specifica se le classificazioni di riservatezza dei dati nelle colonne devono essere ignorate durante il confronto dei modelli di schema. Questo funziona solo per le classificazioni aggiunte con la sintassi ADD SENSITIVITY CLASSIFICATION introdotta in SQL 2019.
/p: IgnoreTableOptions=(BOOLEAN 'False') Specifica se le differenze nelle opzioni di tabella devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreTablePartitionOptions=(BOOLEAN 'False') Specifica se le differenze nelle opzioni della partizione di tabella devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database. Questa opzione si applica solo ai database di pool SQL dedicati di Azure Synapse Analytics.
/p: IgnoreUserSettingsObjects=(BOOLEAN 'False') Specifica se le differenze negli oggetti impostazioni utente devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreWhitespace=(BOOLEAN 'True') Specifica se le differenze nello spazio devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreWithNocheckOnCheckConstraints=(BOOLEAN 'False') Specifica se le differenze nel valore della clausola WITH NOCHECK per vincoli CHECK devono essere ignorate o aggiornate quando si esegue la pubblicazione.
/p: IgnoreWithNocheckOnForeignKeys=(BOOLEAN 'False') Specifica se le differenze nel valore della clausola WITH NOCHECK per chiavi esterne devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: IgnoreWorkloadClassifiers=(BOOLEAN 'False') Specifica se escludere i classificatori del carico di lavoro esistenti nella destinazione durante la distribuzione.
/p: IncludeCompositeObjects=(BOOLEAN 'False') Includi tutti gli elementi compositi con lo stesso database come parte di una singola operazione di pubblicazione.
/p: IncludeTransactionalScripts=(BOOLEAN 'False') Specifica se le istruzioni transazionali devono essere usate ove possibile quando si esegue la pubblicazione in un database.
/p: IsAlwaysEncryptedParameterizationEnabled=(BOOLEAN 'False') Abilita la parametrizzazione delle variabili nelle colonne Always Encrypted negli script pre/post-distribuzione.
/p: LongRunningCommandTimeout=(INT32 '0') Specifica il timeout del comando a esecuzione prolungata in secondi quando si eseguono query su SQL Server. Usare 0 per l'attesa indefinita.
/p: NoAlterStatementsToChangeClrTypes=(BOOLEAN 'False') Specifica che, in caso di differenze, la pubblicazione deve sempre comportare l'eliminazione e la ricreazione di un assembly, anziché l'esecuzione di un'istruzione ALTER ASSEMBLY.
/p: PerformIndexOperationsOnline=(BOOLEAN 'False') Specifica se eseguire operazioni sugli indici online durante la distribuzione.
/p: PopulateFilesOnFileGroups=(BOOLEAN 'True') Specifica se, quando si crea un nuovo FileGroup nel database di destinazione, viene anche creato un nuovo file.
/p: PreserveIdentityLastValues=(BOOLEAN 'False') Specifica se gli ultimi valori per le colonne Identity devono essere mantenuti durante la distribuzione.
/p: RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') Ricompilare gli indici offline dopo l'importazione dei dati.
/p: RegisterDataTierApplication=(BOOLEAN 'False') Specifica se lo schema è registrato con il server di database.
/p: RestoreSequenceCurrentValue=(BOOLEAN 'True') Specifica se il valore corrente dell'oggetto sequenza deve essere distribuito con il file dacpac, il valore predefinito è True.
/p: RunDeploymentPlanExecutors=(BOOLEAN 'False') Specifica se i collaboratori DeploymentPlanExecutor devono essere eseguiti quando vengono eseguite altre operazioni.
/p: ScriptDatabaseCollation=(BOOLEAN 'False') Specifica se le differenze nelle regole di confronto del database devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: ScriptDatabaseCompatibility=(BOOLEAN 'False') Specifica se le differenze nella compatibilità del database devono essere ignorate o aggiornate quando si esegue la pubblicazione in un database.
/p: ScriptDatabaseOptions=(BOOLEAN 'True') Specifica se le proprietà del database di destinazione devono essere impostate o aggiornate come parte dell'azione di pubblicazione.
/p: ScriptDeployStateChecks=(BOOLEAN 'False') Specifica se nello script di pubblicazione vengono generate istruzioni per verificare che il nome del database e il nome del server corrispondano ai nomi specificati nel progetto del database.
/p: ScriptFileSize=(BOOLEAN 'False') Controlla se le dimensioni sono specificate quando si aggiunge un file a un filegroup.
/p: ScriptNewConstraintValidation=(BOOLEAN 'True') Al termine della pubblicazione tutti i vincoli verranno verificati come un unico set, evitando errori nei dati causati da un controllo o da un vincolo di chiave esterna durante la pubblicazione. Se impostata su False, i vincoli verranno pubblicati senza il controllo dei dati corrispondenti.
/p: ScriptRefreshModule=(BOOLEAN 'True') Include istruzioni di aggiornamento alla fine dello script di pubblicazione.
/p: Storage=({File|Memory}) Specifica la modalità di archiviazione degli elementi durante la compilazione del modello di database. Per motivi di prestazioni, l'impostazione predefinita è InMemory. Per i database di grandi dimensioni, l'archiviazione supportata da file può essere necessaria ed è disponibile solo per la versione .NET Framework di SqlPackage.
/p: TreatVerificationErrorsAsWarnings=(BOOLEAN 'False') Specifica se gli errori rilevati durante la verifica della pubblicazione devono essere considerati come avvisi. Il controllo viene effettuato a fronte del piano di distribuzione generato prima che il piano venga eseguito nel database di destinazione. La verifica del piano consente di rilevare problemi quali la perdita di oggetti della sola destinazione, ad esempio gli indici, che devono essere eliminati per apportare una modifica. Con la verifica è anche possibile individuare le dipendenze, ad esempio una tabella o una visualizzazione, presenti a causa di un riferimento a un progetto composito ma che non esistono nel database di destinazione. È possibile scegliere di eseguire questa operazione per ottenere un elenco completo di tutti i problemi, anziché dover interrompere l'azione di pubblicazione al primo errore.
/p: UnmodifiableObjectWarnings=(BOOLEAN 'True') Specifica se devono essere generati avvisi quando vengono rilevate differenze negli oggetti che non possono essere modificati, ad esempio quando risultano differenti la dimensione o i percorsi di un file.
/p: VerifyCollationCompatibility=(BOOLEAN 'True') Specifica se viene verificata la compatibilità delle regole di confronto.
/p: VerifyDeployment=(BOOLEAN 'True') Specifica se prima della pubblicazione devono essere eseguiti i controlli che arresteranno l'azione di pubblicazione qualora vengono rilevati problemi che potrebbero bloccare l'esecuzione della pubblicazione. Ad esempio, l'azione di pubblicazione potrebbe venire arrestata se si hanno chiavi esterne nel database di destinazione che non esistono nel progetto di database e tale situazione comporta la generazione di errori durante la pubblicazione.

Variabili SQLCMD

Nella tabella seguente viene illustrato il formato dell'opzione da usare per eseguire l'override del valore della variabile di un comando SQL (sqlcmd) usata durante l'azione di pubblicazione. I valori della variabile specificati nella riga di comando eseguono l'override dei valori assegnati alla variabile, ad esempio in un profilo di pubblicazione.

Parametro Default Description
/v:{PropertyName}={Value} Specifica una coppia nome/valore per una variabile specifica dell'azione: {NomeVariabile}={Valore}. Nel file DACPAC è incluso l'elenco di variabili SQLCMD valide. Viene generato un errore se non viene fornito un valore per ogni variabile.

Passaggi successivi