We recently released v19.2 of SqlPackage, a v161-preview of DacFx with Microsoft.Data.SqlClient 5, and v2 of GitHub sql-action. In this article we'll discuss some of the latest updates and changes across SQL tooling for development and deployment.
In v19.2 of SqlPackage there is added support for recently introduced SQL features, including Dynamic Data Masking and XML compression. With support for Dynamic Data Masking, granular unmask permissions are supported for all operations including import/export and extract/publish.
A significant change for SqlPackage in v19.2 is that we upgraded the SqlPackage build from .NET Core 3.1 to .NET 6, which has shown performance improvements ranging from 5% to 30% in our standard test suite. We're looking forward to additional opportunities in the future for performance improvement based on code changes dependent on .NET 6.
The previous release of SqlPackage added the ability to extract a database to SQL files in addition to the established extract to a dacpac file. With the introduction of the `ExtractTarget` property on SqlPackage extract you can obtain your database's objects as a collection of SQL files organized by folders based on object type, schema, and more.
DacFx and Microsoft.Data.SqlClient 5
The data-tier application framework (DacFx) utilizes the Microsoft.Data.SqlClient SQL driver, which recently introduced support for TDS 8 in SqlClient v5.0.0. A preview NuGet package for DacFx v161-preview is now available, the first DacFx preview release for v161. With v161, DacFx has moved from SqlClient version 3 to version 5. There are a number of breaking changes introduced in this multi-version upgrade. For example, in SqlClient v4 the default connection value for Encrypt has been changed to true.
With the preview of SDK-style SQL projects and Microsoft.Build.Sql we announced a desire to make deploying SQL databases from the SQL-schema-as-code easier than ever. The recently released v2 of GitHub sql-action can build and deploy a SQL project to a SQL database, leveraging SDK-style SQL projects and SqlPackage.
Another notable change to sql-action in v2 is the conversion to go-sqlcmd from sqlcmd for script execution. Authentication options were added to the v2 release for both SQL project deployment and script execution, including Azure Active Directory Managed Identity and Azure Active Directory Service Principal. GitHub sql-action v2 supports both Windows and Linux pipelines.