Release notes for SqlPackage.exe

Download the latest version

This article lists the features and fixes delivered by the released versions of SqlPackage.exe.

18.8 sqlpackage

Platform Download Release date Version Build
Windows MSI Installer October 4, 2021 18.8 15.0.5282.3
macOS .NET Core .zip file October 4, 2021 18.8 15.0.5282.3
Linux .NET Core .zip file October 4, 2021 18.8 15.0.5282.3
Windows .NET Core .zip file October 4, 2021 18.8 15.0.5282.3

Features

Feature Details
Export Adds option VerifyExtraction to change behavior of schema model validation on export
Azure SQL Support for ledger database and tables, import and export
Platform Upgrade Microsoft.Data.SqlClient from 2.0.0 to 2.1.3 for .NET Core version
Azure Synapse Analytics Support for column encryption with symmetric key
Azure Synapse Analytics Support for column encryption with CREATE CERTIFICATE
Azure Synapse Analytics Support for MERGE statement
Deployment Variable parameterization for AE columns, new publish property IsAlwaysEncryptedParameterizationEnabled
Deployment Support for IgnoreWorkloadClassifiers & IgnoreDatabaseWorkloadGroups publish properties
Deployment Support for external language runtimes
ScriptDOM Support for ledger database and tables
ScriptDOM Support for INCLUDE columns in inline index definitions

Fixes

Feature Details
Deployment Fixed an issue where external user deployment to Managed Instance would fail
Deployment Fix for deployment order involving temporal tables to drop dependencies before turning system versioning off
Deployment Fix for Always Encrypted deployment bug with error "Invalid object name '#tmpErrors'"
Export Validation for SqlPackage parameters ExcludeObjectType(s) and DoNotDropObjectType(s)
Export Fixed export failure when there are CDC objects in database by excluding
Extract Adds a retry to extract validation when first time fails due to race condition
Import Fixed occasional deadlocks when importing to Azure by setting MAXDOP to 1
Import Fixed import failure when temporal table has dependency on security policy with schema binding on
Platform DacFramework.msi is now signed by "Microsoft SQL Server Data-Tier Application Framework" instead of "SQL Server 2012"
Platform Default to large arrays in x64 SqlPackage, fixes some scenarios involving large databases
Schema Compare Fix for schema compare failing for equal databases with database scoped configurations
Schema Compare Fixed schema compare with columnstore indexes
SQL Project Fixed a bug with build error for "GRANT EXECUTE ANY EXTERNAL SCRIPT"
SQL Project Fixed a bug where database project with columnstore index and a (n)varchar(max) column builds successfully but fails at deployment
SQL Project Fixed unresolved reference warnings for table distribution columns within Stored Procedures

Known Issues

Feature Details Workaround
Deployment The Azure Synapse Analytics Workload Management feature (Workload Groups and Workload Classifiers) is not yet supported N/A
Deployment The Azure SQL ledger table feature is not yet supported N/A

18.7.1 sqlpackage

Platform Download Release date Version Build
Windows MSI Installer June 2, 2021 18.7.1 15.0.5164.1
macOS .NET Core .zip file June 2, 2021 18.7.1 15.0.5164.1
Linux .NET Core .zip file June 2, 2021 18.7.1 15.0.5164.1
Windows .NET Core .zip file June 2, 2021 18.7.1 15.0.5164.1

Features

Feature Details
Auditing Adds support for EXTERNAL_MONITOR.
Azure Synapse Analytics Adds support for PREDICT.
Logging Adds SqlPackage version and architecture information to diagnostic log file.

Fixes

Feature Details
Export Fixed an issue where exporting a table with text or image in the first column would fail without a clustered index.
Export Fixed an issue where exporting a table that has the order of columns in a statistic in a different order than the table create script would fail without a clustered index.

18.7 sqlpackage

Platform Download Release date Version Build
Windows MSI Installer March 10, 2021 18.7 15.0.5084.2
macOS .NET Core .zip file March 10, 2021 18.7 15.0.5084.2
Linux .NET Core .zip file March 10, 2021 18.7 15.0.5084.2
Windows .NET Core .zip file March 10, 2021 18.7 15.0.5084.2

Features

Feature Details
Deployment Extract/Publish Big Data to/from Azure Storage. For more info, see SqlPackage for Big Data
Azure Synapse Analytics Row level security support (inline table valued function, security policy, security predicate)
Azure Synapse Analytics Workload classification support
Azure SQL Edge External streaming job support
Azure SQL Edge Added table and database options for data retention.
Import Added 2 new index option properties for import operation. DisableIndexesForDataPhase (Disable indexes before importing data into SQL Server, default true) and RebuildIndexesOfflineForDataPhase (Rebuild indexes offline after importing data into SQL Server, default false)
Logging Added property for all operations (HashObjectNamesInLogs) that will turn all object names into a hash string in log messages.
Performance Improvements to import and export performance, including additional logging to assist in determining additional bottlenecks.
SQLCMD Added property for Deployment and Schema Compare (DoNotEvaluateSqlCmdVariables) that specifies whether SQLCMD variables will be replaced with values.

Fixes

Feature Details
Deployment Default MAXDOP changed from 0 to 8 for Azure SQL, updating schema model default in DacFx
Schema Compare Stored procedures using OUT and OUTPUT keywords to be ignored as a difference
Deployment Additional validation for Big Data tokens
Build/Deployment Full schema model cleanup of temp external tables for final dacpac consistency.
Build/Deployment Adding error handling and fixing non-Edge 150 RE.
Import/Deployment Sequence value restored during deployment
Deployment Fixed an issue where changing the compression option on clustered index caused the table to be recreated instead of alter index.
Deployment Fixed an issue where a clustered columnstore index was dropped and recreated if table column changed.
Deployment Fixed external users getting dropped and recreated during deployment.
Schema Compare Fixed schema compare issue with external streaming job.
Import Null reference exception raised when enabling ambient setting ReliableDdlEnabled scripting a deployment report.
Deployment Fixed an issue where deployment steps containing system versioning would be created in the incorrect order.
Deployment Fixed an issue where schema compare update or dacpac deploy failed due to target containing temporal tables.
Deployment Reseeds identity value after deployment based on target's previous last value.

Known Issues

Feature Details Workaround
Deployment The Azure Synapse Analytics Workload Management feature (Workload Groups and Workload Classifiers) is not yet supported N/A
Deployment In an incremental deploy scenario when the user is dropping a temporal table along with dropping objects that are dependent on it, like functions, stored procs etc. the deployment can fail. The script generation order tries to turn off SYSTEM_VERSIONING on the table which is a pre-req for dropping the table, but the order of steps generated is incorrect. Work item Generate the deployment script, move the System_Versioning OFF step to just before the table being dropped and then run the script.

18.6 sqlpackage

Platform Download Release date Version Build
Windows MSI Installer September 18, 2020 18.6 15.0.4897.1
macOS .NET Core .zip file September 18, 2020 18.6 15.0.4897.1
Linux .NET Core .zip file September 18, 2020 18.6 15.0.4897.1
Windows .NET Core .zip file September 18, 2020 18.6 15.0.4897.1

Features

Feature Details
Platform Updated sqlpackage for .NET Core version to .NET Core 3.1
Always Encrypted Added support for secure enclave import and export for SQL Server 2019
Deployment Added support to ignore change data capture enabled tables when exporting from Azure SQL Database
Deployment Added support for index option OPTIMIZE_FOR_SEQUENTIAL_KEY in Azure SQL Database
Deployment Added support for identity columns for Azure Synapse Analytics
Help Output the sqlpackage version in the help (/?) and support the /version parameter

Fixes

Feature Details
Deployment Fixed an incorrect deployment script generated when targeting Azure SQL Managed Instance as a non-sysadmin user
Deployment Fixed loading deployment contributors when running script actions
Help Output correct elapsed time in sqlpackage when operation take longer than 1 day
Deployment Fixed dacpac registration when deploying for .NET Core
Deployment Fixed sqlpackage on .NET Core handling of the /accessToken (/at) parameter
Deployment Allow ALTER TABLE statements in stored procedures as non-top level statements
Deployment Fixed Azure Synapse Analytics validation of materialized views to be case insensitive

Known Issues

Feature Details
Deployment The Azure Synapse Analytics Workload Management feature (Workload Groups and Workload Classifiers) is not yet supported

18.5.1 sqlpackage

Platform Download Release date Version Build
Windows MSI Installer June 24, 2020 18.5.1 15.0.4826.1
macOS .NET Core .zip file June 24, 2020 18.5.1 15.0.4826.1
Linux .NET Core .zip file June 24, 2020 18.5.1 15.0.4826.1
Windows .NET Core .zip file June 24, 2020 18.5.1 15.0.4826.1

Fixes

Feature Details
Deployment Fixed a regression that was introduced in 18.5 causing there to be an “Incorrect syntax near 'type'” error when deploying a dacpac or importing a bacpac with a user with external login to on premise

18.5 sqlpackage

Platform Download Release date Version Build
Windows MSI Installer April 28, 2020 18.5 15.0.4769.1
macOS .NET Core .zip file April 28, 2020 18.5 15.0.4769.1
Linux .NET Core .zip file April 28, 2020 18.5 15.0.4769.1
Windows .NET Core .zip file April 28, 2020 18.5 15.0.4769.1

Features

Feature Details
Deployment Data Sensitivity classification now supported for SQL Server 2008 and up, Azure SQL Database, and Azure Synapse Analytics
Deployment Add Azure Synapse Analytics support for table constraints
Deployment Add Azure Synapse Analytics support for ordered clustered column store index
Deployment Add support for External Data Source (for Oracle, Teradata, MongoDB/CosmosDB, ODBC, Big Data Cluster) and External Table for SQL Server 2019 Big Data Cluster
Deployment Add SQL Database Edge Instance as supported edition
Deployment Support Managed Instance server names of the form '<server>.<dnszone>.database.windows.net'
Deployment Add support for copy command in Azure Synapse Analytics
Deployment Add deployment option 'IgnoreTablePartitionOptions' during Publish to avoid table recreation when there is change in partition function on table for Azure Synapse Analytics
.NET Core Add support for Microsoft.Data.SqlClient in .NET Core version of sqlpackage
   

Fixes

Fix Details
Deployment Fix parsing json path as expression
Deployment Fix generating GRANT statements for AlterAnyDatabaseScopedConfiguration and AlterAnySensitivityClassification permissions
Deployment Fix External Script permission not being recognized
Deployment Fix for inline property - the implicit addition of the property should not show in difference but explicit mention should show through script
Deployment Resolved an issue where changing a Table referenced by a Materialized View (MV) causes Alter View statements to be generated which is not supported for MVs for Azure Synapse Analytics
Deployment Fix publish failing when adding column to a table with data for Azure Synapse Analytics
Deployment Fix update script should move data to a new table when changing the distribution column type (data loss scenario) for Azure Synapse Analytics
ScriptDom Fix ScriptDom bug where it couldn't recognize inline constraints defined after an inline index
ScriptDom Fix ScriptDom SYSTEM_TIME missing closing parenthesis when in a batch statement
Always Encrypted Fix #tmpErrors table failing to drop if sqlpackage reconnects and the temp table is already gone because the temporary table goes away when the connection dies
   

Known Issues

Feature Details
Deployment A regression was introduced in 18.5 causing there to be an “Incorrect syntax near 'type'” error when deploying a dacpac or importing a bacpac with a user with external login to on premise. Workaround is to use sqlpackage 18.4 and it will be fixed in the next sqlpackage release.
.NET Core Importing bacpacs with Sensitivity Classification fails with "Internal connection fatal error" because of this known issue in Microsoft.Data.SqlClient. This will be fixed in the next sqlpackage release.
   

18.4.1 sqlpackage

Platform Download Release date Version Build
Windows MSI Installer December 13, 2019 18.4.1 15.0.4630.1
macOS .NET Core .zip file December 13, 2019 18.4.1 15.0.4630.1
Linux .NET Core .zip file December 13, 2019 18.4.1 15.0.4630.1
Windows .NET Core .zip file December 13, 2019 18.4.1 15.0.4630.1

Fixes

Fix Details
ScriptDom A ScriptDom parsing regression was introduced in 18.3.1 where 'RENAME' is incorrectly treated as a top-level token, cause parsing to fail.
   

Known Issues

Feature Details
Deployment A regression was introduced in 18.4.1 causing there to be a “Object reference not set to an instance of an object.” error when deploying a dacpac or importing a bacpac with a user with external login. Workaround is to use sqlpackage 18.4 and it will be fixed in the next sqlpackage release.
   

18.4 sqlpackage

Platform Download Release date Version Build
Windows MSI Installer October 29, 2019 18.4 15.0.4573.2
macOS .NET Core .zip file October 29, 2019 18.4 15.0.4573.2
Linux .NET Core .zip file October 29, 2019 18.4 15.0.4573.2
Windows .NET Core .zip file October 29, 2019 18.4 15.0.4573.2

Features

Feature Details
Deployment Add support to deploy to Azure Synapse Analytics (GA).
Platform sqlpackage .NET Core GA for macOS, Linux, and Windows.
Security Remove SHA1 code signing.
Deployment Add support for new Azure database editions: GeneralPurpose, BusinessCritical, Hyperscale
Deployment Add Managed Instance support for Azure Active Directory user and groups.
Deployment Support the /AccessToken parameter for sqlpackage on .NET Core.
   

Known Issues

Feature Details
ScriptDom A ScriptDom parsing regression was introduced in 18.3.1 where 'RENAME' is incorrectly treated as a top-level token, cause parsing to fail. This will be fixed in the next sqlpackage release.
   

Known Issues for .NET Core

Feature Details
Import For .bacpac files with compressed files over 4GB in size, you might need to use the .NET Core version of sqlpackage to perform the import. This behavior is due to how .NET Core generates zip headers, which although valid, are not readable by the .NET Full Framework version of sqlpackage.
Deployment The parameter /p:Storage=File is not supported. Only Memory is supported on .NET Core.
Always Encrypted sqlpackage .NET Core does not support Always Encrypted columns.
Security sqlpackage .NET Core does not support the /ua parameter for multi-factor authentication.
Deployment Older V2 .dacpac and .bacpac files that use json data serialization aren't supported.
   

18.3.1 sqlpackage

Platform Download Release date Version Build
Windows MSI Installer September 13, 2019 18.3.1 15.0.4538.1
macOS .NET Core (preview) .zip file September 13, 2019 18.3.1 15.0.4538.1
Linux .NET Core (preview) .zip file September 13, 2019 18.3.1 15.0.4538.1
Windows .NET Core (preview) .zip file September 13, 2019 18.13.1 15.0.4538.1

Features

Feature Details
Deployment Add support to deploy to Azure Synapse Analytics (preview).
Deployment Add /p:DatabaseLockTimeout=(INT32 '60') parameter to sqlpackage.
Deployment Add /p:LongRunningCommandTimeout=(INT32) parameter to sqlpackage.
Export/Extract Add /p:TempDirectoryForTableData=(STRING) parameter to sqlpackage.
Deployment Allow deployment contributors to be loaded from additional locations. Deployment contributors will be loaded from the same directory as the target .dacpac being deployed, the Extensions directory relative to the sqlpackage.exe binary, and the /p:AdditionalDeploymentContributorPaths=(STRING) parameter added to sqlpackage where additional directory locations can be specified.
Deployment Add support for OPTIMIZE_FOR_SEQUENTIAL_KEY.
   

Fixes

Fix Details
Deployment Fix to ignore automatic indexes so that they are not dropped on deployment.
Always Encrypted Fix for handling Always Encrypted varchar columns.
Build/Deployment Fix to resolve the nodes() method for xml column sets.
ScriptDom Fix additional cases where the 'URL' string was interpreted as a top level token.
Graph Fix generated TSQL for pseudo column references in constraints.
Export Generate random passwords that meet complexity requirements.
Deployment Fix to honor command timeouts when retrieving constraints.
.NET Core (preview) Fix diagnostic logging to a file.
.NET Core (preview) Use streaming to export table data to support large tables.
   

18.2 sqlpackage

Platform Download Release date Version Build
Windows MSI Installer April 15, 2019 18.2 15.0.4384.2
macOS .NET Core (preview) .zip file April 15, 2019 18.2 15.0.4384.2
Linux .NET Core (preview) .zip file April 15, 2019 18.2 15.0.4384.2

Features

Feature Details
Graph Add graph table support for edge constraints and edge constraint clauses.
Deployment Enabled model validation rule to support 32 columns for index keys for SQL Server 2016 and up.
   

Fixes

Fix Details
Deployment Fix reverse engineering a SQL Server 2016 RTM database due to an unsupported query hint being used.
Deployment Fix deployment ordering of auto close alter statements to occur before create filegroup statements.
ScriptDom Fix ScriptDom parsing regression where the 'URL' string was interpreted as a top level token.
Deployment Fix a null reference exception when parsing an alter table add index statement.
Schema Compare Fixed schema compare for nullable persisted computed columns always showing as different.
   

18.1 sqlpackage

Release date:   February 1, 2019
Build:   15.0.4316.1
Preview release.

Features

Feature Details
Deployment Added support for UTF8 collations.
Deployment Enabled nonclustered columnstore indexes on an indexed view.
Platform Moved to .NET Core 2.2.
Schema Compare Use memory backed storage for schema compare on .NET Core.
   

Fixes

Fix Details
Performance Performance fix to use the legacy cardinality estimator for reverse engineering queries.
Performance Fixed a significant schema compare performance issue when generating a script.
Schema Compare Fixed the schema drift detection logic to ignore certain extended event (xevent) sessions.
Graph Fixed import ordering for graph tables.
Export Fixed exporting external tables with object permissions.
   

Known issues

This release includes cross-platform preview builds of sqlpackage that target .NET Core 2.2. The sqlpackage can run on macOS and Linux.

Known issue Details
Deployment For .NET Core, build and deployment contributors aren't supported.
Deployment For .NET Core, older .dacpac and .bacpac files that use json data serialization aren't supported.
Deployment For .NET Core referenced .dacpacs (for example master.dacpac) may not resolve due to issues with case-sensitive file systems. A workaround is to capitalize the name of the reference file (for example MASTER.BACPAC).
   

18.0 sqlpackage

Release date:   October 24, 2018
Build:   15.0.4200.1

Features

Feature Details
Deployment Added support for database compatibility level 150.
Deployment Added support for Managed Instances.
Performance Added MaxParallelism command-line parameter to specify the degree of parallelism for database operations.
Security Added AccessToken command-line parameter to specify an authentication token when connecting to SQL Server.
Import Added support to stream BLOB/CLOB data types for imports.
Deployment Added support for scalar UDF 'INLINE' option.
Graph Added support for graph table 'MERGE' syntax.
   

Fixes

Fix Details
Graph Fixed unresolved pseudo-column for graph tables.
Deployment Fixed creating a database with memory optimized file groups when memory optimized tables are used.
Deployment Fixed including extended properties on external tables.
   

17.8 sqlpackage

Release date:   June 22, 2018
Build:   14.0.4079.2

Features

Feature Details
Diagnostics Improved error messages for connection failures, including the SqlClient exception message.
Deployment Support index compression on single partition indexes for import/export.
   

Fixes

Fix Details
Deployment Fixed a reverse engineering issue for XML column sets with SQL 2017 and later.
Deployment Fixed an issue where scripting the database compatibility level 140 was ignored for Azure SQL Database.
   

17.4.1 sqlpackage

Release date:   January 25, 2018
Build:   14.0.3917.1

Features

Feature Details
Import/Export Added ThreadMaxStackSize command-line parameter to parse Transact-SQL with a large number of nested statements.
Deployment Database catalog collation support.
   

Fixes

Fix Details
Import When importing an Azure SQL Database .bacpac to an on-premises instance, fixed errors due to Database master keys without password are not supported in this version of SQL Server.
Graph Fixed an unresolved pseudo column error for graph tables.
Schema Compare Fixed SQL authentication to compare schemas.
   

17.4.0 sqlpackage

Release date:   December 12, 2017
Build:   14.0.3881.1

Features

Feature Details
Deployment Added support for temporal retention policy on SQL 2017+ and Azure SQL Database.
Diagnostics Added /DiagnosticsFile:"C:\Temp\sqlpackage.log" command-line parameter to specify a file path to save diagnostic information.
Diagnostics Added /Diagnostics command-line parameter to log diagnostic information to the console.
   

Fixes

Fix Details
Deployment Do not block when encountering a database compatibility level that is not understood. Instead, the latest Azure SQL Database or on-premises platform will be assumed.