Placeholders get a makeover in PowerPoint
April 30, 2025The quarterly release cadence for SqlPackage and DacFx continues with the 170.0 release in mid-April 2025. Recent releases to SqlPackage and DacFx ecosystem have added support for new data types, enhanced the portability with parquet files capabilities, and added two utilities for .dacpac files. Additionally, the general availability of the SQL project SDK, Microsoft.Build.Sql 1.0.0, has been followed with previews of the next version of Microsoft.Build.Sql.
JSON and VECTOR data types
The JSON and VECTOR data types have been added to SqlPackage over the past couple of releases for use with Azure SQL Database. Support for the new types in SqlPackage includes import/export with .bacpacs and publish/extract with .dacpacs, enabling both database portability as well as ongoing deployments. SQL projects built with the Microsoft.Build.Sql SDK can include the JSON data type and VECTOR data type as of the SDK version 1.0.0.
Learn more about the JSON type and aggregates from this episode of Data Exposed: https://techcommunity.microsoft.com/blog/azuresqlblog/json-type–aggregates-public-preview-in-azure-sql-database–data-exposed/4172935
This blog post has great examples of the VECTOR type for use with AI solutions: https://techcommunity.microsoft.com/blog/azuresqlblog/json-type–aggregates-public-preview-in-azure-sql-database–data-exposed/4172935
SQL database in Fabric and SQL Server 2025
In case you missed it the big news in November 2024 – SQL Server 2025 and SQL database in Fabric were both announced. SQL database in Fabric extends the robust SQL Server/Azure SQL Database engine to Fabric, providing a simple, autonomous, and secure database integrated in the Microsoft Fabric platform. SQL Server 2025 is the enterprise AI-ready database and is packed with functionality for AI, analytics, and development. SqlPackage introduced support for SQL database in Fabric in version 162.5 and with the 170.0 release is ready to support SQL Server 2025.
In SQL projects, the target platform project property is used to control the allowed syntax and feature set of a project. In 1.0.0 of Microsoft.Build.Sql, the SqlDbFabricDatabaseSchemaProvider target platform is available for SQL database in Fabric. The 2.0.0 preview versions of Microsoft.Build.Sql include the target platform for SQL Server 2025.
Improvements to portability with parquet files
Database portability, the ability to take a SQL database from a server and move it to a different server even across SQL Server and Azure SQL hosting options, is most often achieved through import and export of .bacpac files. While SqlPackage import/export operations provide a convenient way to make a portable copy of a SQL database, the performance limitations make SqlPackage import and export not ideal for databases over 100GB. Database portability with a .dacpac and the data written directly to parquet files in Azure Blob Storage was previously released for SQL Server 2022+ and Azure SQL Managed Instance.
With extract, the database schema (.dacpac file) is written to the local client running SqlPackage and the data is written to Azure Blob Storage in Parquet format. With publish, the database schema (.dacpac file) is read from the local client running SqlPackage and the data is read from or written to Azure Blob Storage in Parquet format. In the 170.0 release of SqlPackage, the data type limitations for database portability with parquet files are lifted. Tables with CLR types or LOBs over 1MB will not be written to parquet, but will be automatically written to the .dacpac file in the original BCP format. With automatic handling for all data types, extract and publish with parquet files is a great option for portability of larger databases in SQL Server and Azure SQL Managed Instance. Support for Azure SQL Database with extract/publish and parquet files is planned for a future release.
Learn more about database portability with parquet files from this episode of Data Exposed: https://www.youtube.com/watch?v=n3_f-6f-8i4
Unpack a .dacpac via SqlPackage
In prior versions of DacFx and SqlPackage, the DacFx MSI installer included an additional executable “DacUnpack.exe”. The DacUnpack utility was capable of converting a .dacpac file to the T-SQL contents and has been replaced by functionality embedded in all versions of SqlPackage. Generally, the SqlPackage Extract command is used with source connection information (like /SourceConnectionString), but with SqlPackage 170.0 a /SourceFile parameter is added to the Extract command to be used without any other source information to unpack a .dacpac file to the associated SQL script.
The following example command extracts the AdventureWorks.dacpac file into a folder “Unpacked”, which will contain a file “model.sql” with the object definitions from the .dacpac.
sqlpackage /Action:Extract /SourceFile:AdventureWorks.dacpac /TargetFile:Unpacked
Compare two .dacpac files
A standalone command line tool, DacpacVerify, is now available to validate that your project conversion has completed without degrading the output .dacpac file. By creating a .dacpac before and after you upgrade a project file from a .NET Framework SQL project to the Microsoft.Build.Sql SDK, you can use DacpacVerify to confirm the database model, database options, pre/post-deployment scripts, and SQLCMD variables match.
More details and provide feedback
The full SqlPackage release notes including features and bug fixes are available in the Microsoft Documentation. Weekly preview releases of DacFx and the SqlPackage CLI have release notes posted to the DacFx GitHub repository. All are welcome to stop by the GitHub repository to provide feedback, whether it is bug reports, questions, or enhancement suggestions.