Skip to content

Releases: dotnet/SqlClient

Stable Release v6.1.2

08 Oct 04:00
607b8c9
Compare
Choose a tag to compare

This update brings the below changes over the previous stable release:

Fixed

  • Fixed an issue where initializing PerformanceCounters would throw System.InvalidOperationException #3629
  • Fixed an issue where a Custom SqlClientAuthenticationProvider was being overwritten by default implementation. #3651
  • Fixed a concurrency issue in connection pooling where the number of active connections could be lower than the configured maximum pool size. #3653

Stable Release v6.0.3

08 Oct 02:19
1542afd
Compare
Choose a tag to compare

This update brings the below changes over the previous stable release:

Fixed

  • Fixed an issue where a Custom SqlClientAuthenticationProvider was being overwritten by default implementation. #3652
  • Fixed a concurrency issue in connection pooling where the number of active connections could be lower than the configured maximum pool size. #3654

Changed

  • Updated MSAL usage as per code compliance requirements #3360
  • Updated SqlDecimal implementation to improve code compliance #3466
  • Updated Azure.Identity and related dependencies #3553

Preview Release v7.0.0-preview1

15 Sep 10:31
fd16c6d
Compare
Choose a tag to compare
Pre-release

Changes Since 6.1.0

This update brings the following changes since the 6.1.0 release:

Breaking Changes

  • Removed Constrained Execution Region error handling blocks and associated SqlConnection cleanup which may affect how potentially-broken connections are expunged from the pool. (#3535)

Bug Fixes

  • Packet multiplexing disabled by default, and several bug fixes. (#3534, #3537)

Added

  • SqlColumnEncryptionCertificateStoreProvider now works on Windows, Linux, and macOS. (#3014)

Changed

Changes Since 6.0.2

This update brings the following changes since the 6.0.2 release. Changes already noted above are omitted:

Additions

Added dedicated SQL Server vector datatype support

What Changed:

  • Optimized vector communications between MDS and SQL Server 2025, employing a custom binary format over the TDS protocol. (#3433, #3443)
  • Reduced processing load compared to existing JSON-based vector support.
  • Initial support for 32-bit single-precision floating point vectors.

Who Benefits:

  • Applications moving large vector data sets will see beneficial improvements to processing times and memory requirements.
  • Vector-specific APIs are ready to support future numeric representations with a consistent look-and-feel.

Impact:

  • Reduced transmission and processing times for vector operations versus JSON using SQL Server 2025 preview:
    • Reads: 50x improvement
    • Writes: 3.3x improvement
    • Bulk Copy: 19x improvement
    • (Observed with vector column of max 1998 size, and 10,000 records for each operation.)
  • Improved memory footprint due to the elimination of JSON serialization/deserialization and string representation bloat.
  • For backwards compatibility with earlier SQL Server Vector implementations, applications may continue to use JSON strings to send/receive vector data, although they will not see any of the performance improvements noted above.

Revived .NET Standard 2.0 target support

What Changed:

  • Support for targeting .NET Standard 2.0 has returned. (#3381)
  • Support had previously been removed in the 6.0 release, with the community voicing concerns.

Who Benefits:

  • Libraries that depend on MDS may seamlessly target any of the following frameworks:
    • .NET Standard 2.0
    • .NET Framework 4.6.2 and above
    • .NET 8.0
    • .NET 9.0
  • Applications should continue to target runtimes.
    • The MDS .NET Standard 2.0 target framework support does not include an actual implementation, and cannot be used with a runtime.
    • An application's build/publish process should always pick the appropriate MDS .NET/.NET Framework runtime implementation.
    • Custom build/publish actions that incorrectly try to deploy the MDS .NET Standard 2.0 reference DLL at runtime are not supported.

Impact:

  • Libraries targeting .NET Standard 2.0 will no longer receive warnings like this:
    • warning NU1701: Package 'Microsoft.Data.SqlClient 6.0.2' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project.

Other Additions

  • Added packet multiplexing support to improve large data read performance. (#2714, #3161, #3202)
  • Added support for special casing with Fabric endpoints. (#3084)

Fixed

  • Fixed distributed transactions to be preserved during pooled connection resets. (#3019)
  • Fixed application crash when the Data Source parameter begins with a comma. (#3250)
  • Resolved synonym count discrepancies in debug mode. (#3098)
  • Addressed warnings for down-level SSL/TLS versions. (#3126)
  • Fixed missing <NeutralLanguage> property. (#3325)
  • Fixed injection of UTF-8 BOM during bulk copy. (#3399)
  • Fixed SqlCachedBuffer async read edge case. (#3329)
  • Fixed SqlSequentialTextReader edge case with single-byte reads. (#3383)
  • Fixed an incorrect error message when parsing connection string PoolBlockingPeriod. (#3411)
  • Added missing ToString() override to SqlJson. (#3427)
  • Fixed missing socket error codes on non-Windows platforms. (#3475)
  • Fixed primary/secondary server SPN handling during SSPI negotiation. (#3478)
  • Fixed AzureKeyVaultProvider package key caching to serialize Azure key fetch operations. (#3477)
  • Fixed a rare error related to multi-packet async text reads. (#3474)
  • Fixed some spelling errors in the API docs. (#3500)
  • Fixed a rare multi-packet string corruption bug. (#3513)

Changed

SqlDecimal type workarounds conversions

What Changed:

  • Changed how SqlDecimal type workarounds perform conversions to meet compliance policies. (#3467)

Who Benefits:

  • Microsoft products must not use undocumented APIs on other Microsoft products. This change removes calls to undocumented APIs and replaces them with compliant API use.

Impact:

  • These changes impose an observed 5% decrease in performance on .NET Framework.

SqlVector API improvements (since 6.1.0-preview2)

What Changed:

  • Several changes were made to the SqlVector API published in the 6.1.0-preview2 release (#3472):
    • The SqlVector class was changed to a readonly struct.
    • The null value constructor was changed to a static CreateNull() method.
    • The Size property was removed.

Who Benefits:

  • SqlVector instances gain the efficiencies of struct handling.

Impact:

  • Early-adopter applications may require updates if they rely on the old APIs and any class-specific behaviour.

Other Changes

Read more

[AzureKeyVaultProvider] Stable Release v6.1.1

15 Aug 22:15
782721d
Compare
Choose a tag to compare

This update brings below changes over the previous stable releases.

Fixed

  • Fixed AzureKeyVaultProvider package key caching to serialize Azure key fetch
    operations. (#3477)

Changed

  • Marked AKV provider as trimmable and enabled AOT support. (#3401)
  • Changed Microsoft.Data.SqlClient version range to [6.1.1,7.0.0). (#3569)

Target Platform Support

  • .NET Framework 4.6.2+ (Windows ARM64, Windows x86, Windows x64)
  • .NET 8.0+ (Windows x86, Windows x64, Windows ARM64, Windows ARM, Linux, macOS)

Dependencies

.NET Framework

  • Azure.Core 1.47.1
  • Azure.Security.KeyVault.Keys 4.7.0
  • Microsoft.Data.SqlClient 6.1.1
  • Microsoft.Extensions.Caching.Memory 8.0.1

.NET 8.0

  • Azure.Core 1.47.1
  • Azure.Security.KeyVault.Keys 4.7.0
  • Microsoft.Data.SqlClient 6.1.1
  • Microsoft.Extensions.Caching.Memory 8.0.1

.NET 9.0

  • Azure.Core 1.47.1
  • Azure.Security.KeyVault.Keys 4.7.0
  • Microsoft.Data.SqlClient 6.1.1
  • Microsoft.Extensions.Caching.Memory 9.0.4

Stable Release v6.1.1

15 Aug 00:03
eb7a9da
Compare
Choose a tag to compare

This update includes the following changes since the 6.1.0 release:

Fixed

  • Reverted changes related to improving partial packet detection, fixup, and replay functionality. This revert addresses regressions introduced in 6.1.0. (#3556)
  • Applied reference assembly corrections supporting vector, fixed JSON tests, and ensured related tests are enabled. #3562
  • Fixed SqlVector<T>.Null API signature in Reference assembly. #3521

Changed

  • Upgraded Azure.Identity and other dependencies to newer versions. (#3538) (#3552)

[Delisted] Stable Release v6.1.0

25 Jul 21:55
1af7327
Compare
Choose a tag to compare

Release Notes

Warning

This release version is delisted from NuGet.org and is no longer supported.
It contains critical bugs that make it unsuitable for use.

Stable Release 6.1.0 - 2025-07-25

This update brings the following changes since the 6.0.2 stable release:

Added

Added dedicated SQL Server vector datatype support

What Changed:

  • Optimized vector communications between MDS and SQL Server 2025, employing a custom binary format over the TDS protocol. (#3433, #3443)
  • Reduced processing load compared to existing JSON-based vector support.
  • Initial support for 32-bit single-precision floating point vectors.

Who Benefits:

  • Applications moving large vector data sets will see beneficial improvements to processing times and memory requirements.
  • Vector-specific APIs are ready to support future numeric representations with a consistent look-and-feel.

Impact:

  • Reduced transmission and processing times for vector operations versus JSON using SQL Server 2025 preview:
    • Reads: 50x improvement
    • Writes: 3.3x improvement
    • Bulk Copy: 19x improvement
    • (Observed with vector column of max 1998 size, and 10,000 records for each operation.)
  • Improved memory footprint due to the elimination of JSON serialization/deserialization and string representation bloat.
  • For backwards compatibility with earlier SQL Server Vector implementations, applications may continue to use JSON strings to send/receive vector data, although they will not see any of the performance improvements noted above.

Revived .NET Standard 2.0 target support

What Changed:

  • Support for targeting .NET Standard 2.0 has returned. (#3381)
  • Support had previously been removed in the 6.0 release, with the community voicing concerns.

Who Benefits:

  • Libraries that depend on MDS may seamlessly target any of the following frameworks:
    • .NET Standard 2.0
    • .NET Framework 4.6.2 and above
    • .NET 8.0
    • .NET 9.0
  • Applications should continue to target runtimes.
    • The MDS .NET Standard 2.0 target framework support does not include an actual implementation, and cannot be used with a runtime.
    • An application's build/publish process should always pick the appropriate MDS .NET/.NET Framework runtime implementation.
    • Custom build/publish actions that incorrectly try to deploy the MDS .NET Standard 2.0 reference DLL at runtime are not supported.

Impact:

  • Libraries targeting .NET Standard 2.0 will no longer receive warnings like this:
    • warning NU1701: Package 'Microsoft.Data.SqlClient 6.0.2' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project.

Other Additions

  • Added packet multiplexing support to improve large data read performance. (#2714, #3161, #3202)
  • Added support for special casing with Fabric endpoints. (#3084)

Fixed

  • Fixed distributed transactions to be preserved during pooled connection resets. (#3019)
  • Fixed application crash when the Data Source parameter begins with a comma. (#3250)
  • Resolved synonym count discrepancies in debug mode. (#3098)
  • Addressed warnings for down-level SSL/TLS versions. (#3126)
  • Fixed missing <NeutralLanguage> property. (#3325)
  • Fixed injection of UTF-8 BOM during bulk copy. (#3399)
  • Fixed SqlCachedBuffer async read edge case. (#3329)
  • Fixed SqlSequentialTextReader edge case with single-byte reads. (#3383)
  • Fixed an incorrect error message when parsing connection string PoolBlockingPeriod. (#3411)
  • Added missing ToString() override to SqlJson. (#3427)
  • Fixed missing socket error codes on non-Windows platforms. (#3475)
  • Fixed primary/secondary server SPN handling during SSPI negotiation. (#3478)
  • Fixed AzureKeyVaultProvider package key caching to serialize Azure key fetch operations. (#3477)
  • Fixed a rare error related to multi-packet async text reads. (#3474)
  • Fixed some spelling errors in the API docs. (#3500)
  • Fixed a rare multi-packet string corruption bug. (#3513)

Changed

SqlDecimal type workarounds conversions

What Changed:

  • Changed how SqlDecimal type workarounds perform conversions to meet compliance policies. (#3467)

Who Benefits:

  • Microsoft products must not use undocumented APIs on other Microsoft products. This change removes calls to undocumented APIs and replaces them with compliant API use.

Impact:

  • These changes impose an observed 5% decrease in performance on .NET Framework.

SqlVector API improvements (since 6.1.0-preview2)

What Changed:

  • Several changes were made to the SqlVector API published in the 6.1.0-preview2 release (#3472):
    • The SqlVector class was changed to a readonly struct.
    • The null value constructor was changed to a static CreateNull() method.
    • The Size property was removed.

Who Benefits:

  • SqlVector instances gain the efficiencies of struct handling.

Impact:

  • Early-adopter applications may require updates if they rely on the old APIs and any class-specific behaviour.

Other Changes

  • Reduced allocations when opening a connection. (#3364)
  • Various performance improvements related to TDS parsing. (#3337, #3377, #3422)
  • Improved native AOT support. (#3364, #3369, #3401)
  • Progress towards SSPI extensibility. (#2454)
  • Progress towards connection pooling improvements. (#3352, #3396)
  • Expanded/clarified SqlConnection's AccessToken and AccessTokenCallback documentation. (#3339)
  • Fixed some poorly formatted tables in the API docs. (#3391)
  • Optimized binary size for AOT. (#3091)
  • Refined bulk copy operations to handle unmatched column names more effectively. (#3205)
  • Enhanced SqlBulkCopy to explicitly identify mismatched column names. (#3183)
  • Optimized outgoing SSPI blob handling using IBufferWriter<byte>. (#2452)
  • Replaced byte[] with string for SNI to improve efficiency. (#2790)
  • Code cleanup to remove SQL 2000 support. (#2839, #3206, #3217)
  • Connection pool design refactor for a modular connection pool design. (#3199)
  • Added dependency on System.Text.Json 8.0.5 (.NET 8.0) and 9.0.5 (.NET Standard 2.0, .NET 9.0) to avoid transitive vulnerabilities (CVE-2024-43485). (#3403)
  • Updated various dependencies #3229, primarily:
    • System.Text.Encodings.Web to v8.0.0
    • System.Text.Json to v8.0.5
    • Azure.Identity to v1.13.2
    • Microsoft.Identity.Model.Json.Web.Tokens to v7.7.1
    • Microsoft.Identity.Model.Protocols.OpenIdConnect to v7.7.1
  • Code merge towards a unified SqlClient project, ali...
Read more

Preview Release 6.1.0-preview2

27 Jun 23:15
df35633
Compare
Choose a tag to compare
Pre-release

Preview Release 6.1.0-preview2.25178.5 - 2025-06-27

This update brings the following changes since the 6.1.0-preview1 release:

Added

Added dedicated SQL Server vector datatype support

What Changed:

  • Optimized vector communications between MDS and SQL Server 2025, employing a custom binary format over the TDS protocol. (#3433, #3443)
  • Reduced processing load compared to existing JSON-based vector support.
  • Initial support for 32-bit single-precision floating point vectors.

Who Benefits:

  • Applications moving large vector data sets will see beneficial improvements to processing times and memory requirements.
  • Vector-specific APIs are ready to support future numeric representations with a consistent look-and-feel.

Impact:

  • Reduced transmission and processing times for vector operations versus JSON using SQL Server 2025 preview:
    • Reads: 50x improvement
    • Writes: 3.3x improvement
    • Bulk Copy: 19x improvement
    • (Observed with vector column of max 1998 size, and 10,000 records for each operation.)
  • Improved memory footprint due to the elimination of JSON serialization/deserialization and string representation bloat.
  • For backwards compatibility with earlier SQL Server Vector implementations, applications may continue to use JSON strings to send/receive vector data, although they will not see any of the performance improvements noted above.

Revived .NET Standard 2.0 target support

What Changed:

  • Support for targeting .NET Standard 2.0 has returned. (#3381)
  • Support had previously been removed in the 6.0 release, with the [community voicing concerns] (#3115).

Who Benefits:

  • Libraries that depend on MDS may seamlessly target any of the following frameworks:
    • .NET Standard 2.0
    • .NET Framework 4.6.2 and above
    • .NET 8.0
    • .NET 9.0
  • Applications should continue to target runtimes.
    • The MDS .NET Standard 2.0 target framework support does not include an actual implementation, and cannot be used with a runtime.
    • An application's build/publish process should always pick the appropriate MDS .NET/.NET Framework runtime implementation.
    • Custom build/publish actions that incorrectly try to deploy the MDS .NET Standard 2.0 reference DLL at runtime are not supported.

Impact:

  • Libraries targeting .NET Standard 2.0 will no longer receive warnings like this:
    • warning NU1701: Package 'Microsoft.Data.SqlClient 6.0.2' was restored using '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8, .NETFramework,Version=v4.8.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project.

Fixed

  • Fixed missing <NeutralLanguage> property. (#3325)
  • Fixed injection of UTF-8 BOM during bulk copy. (#3399)
  • Fixed SqlCachedBuffer async read edge case. (#3329)
  • Fixed SqlSequentialTextReader edge case with single-byte reads. (#3383)
  • Fixed an incorrect error message when parsing connection string PoolBlockingPeriod. (#3411)
  • Added missing ToString() override to SqlJson. (#3427)

Changed

Contributors

We thank the following public contributors. Their efforts toward this project
are very much appreciated.

New Contributors

Target Platform Support

  • .NET Framework 4.6.2+ (Windows ARM64, Windows x86, Windows x64)
  • .NET 8.0+ (Windows x86, Windows x64, Windows ARM64, Windows ARM, Linux, macOS)

Dependencies

.NET Standard 2.0

  • Azure.Identity 1.13.2
  • Microsoft.Bcl.Cryptography 9.0.4
  • Microsoft.Data.SqlClient.SNI.runtime 6.0.2
  • Microsoft.Extensions.Caching.Memory 9.0.4
  • Microsoft.IdentityModel.JsonWebTokens 7.7.1
  • Microsoft.IdentityModel.Protocols.OpenIdConnect 7.7.1
  • Microsoft.SqlServer.Server 1.0.0
  • System.Configuration.ConfigurationManager 9.0.4
  • System.Security.Cryptography.Pkcs 9.0.4
  • System.Text.Json 9.0.5

.NET Framework 4.6.2+

  • Azure.Identity 1.13.2
  • Microsoft.Bcl.Cryptography 8.0.0
  • Microsoft.Data.SqlClient.SNI 6.0.2
  • Microsoft.Extensions.Caching.Memory 8.0.1
  • Microsoft.IdentityModel.JsonWebTokens 7.7.1
  • Microsoft.IdentityModel.Protocols.OpenIdConnect 7.7.1
  • System.Buffers 4.5.1
  • System.Data.Common 4.3.0
  • System.Security.Cryptography.Pkcs 8.0.1
  • System.Text.Encodings.Web 8.0.0
  • System.Text.Json 8.0.5

.NET 8.0

  • Azure.Identity 1.13.2
  • Microsoft.Bcl.Cryptography 8.0.0
  • Microsoft.Data.SqlClient.SNI.runtime 6.0.2
  • Microsoft.Extensions.Caching.Memory 8.0.1
  • Microsoft.IdentityModel.JsonWebTokens 7.7.1
  • Microsoft.IdentityModel.Protocols.OpenIdConnect 7.7.1
  • Microsoft.SqlServer.Server 1.0.0
  • System.Configuration.ConfigurationManager 8.0.1
  • System.Security.Cryptography.Pkcs 8.0.1
  • System.Text.Json 8.0.5

.NET 9.0

  • Azure.Identity 1.13.2
  • Microsoft.Bcl.Cryptography 9.0.4
  • Microsoft.Data.SqlClient.SNI.runtime 6.0.2
  • Microsoft.Extensions.Caching.Memory 9.0.4
  • Microsoft.IdentityModel.JsonWebTokens 7.7.1
  • Microsoft.IdentityModel.Protocols.OpenIdCon...
Read more

Preview Release v6.1.0-preview1

30 Apr 23:07
08622e7
Compare
Choose a tag to compare
Pre-release

This update brings the following changes over the previous release:

Added

  • Added packet multiplexing support to improve large data read performance. #2714 #3161 #3202
  • Added support for special casing with Fabric endpoints. #3084

Fixed

  • Fixed distributed transactions to be preserved during pooled connection resets. #3019.
  • Fixed application crash when the Data Source parameter begins with a comma. #3250.
  • Resolved synonym count discrepancies in debug mode. #3098.
  • Addressed warnings for down-level SSL/TLS versions. #3126.

Changed

New Contributors

Stable release v5.2.3

29 Apr 19:38
1c0b2f6
Compare
Choose a tag to compare

This update brings the following changes since the 5.2.2 release:

Fixed

  • Fixed possible NullPointerException during socket receive (PR #3284)
  • Fixed inconsistencies between source and reference projects (PR #3124)
  • Adjusted retry logic to allow errors with negative numbers to be considered transient (PR #3185)

Changed

Stable Release v5.1.7

25 Apr 22:10
0697f41
Compare
Choose a tag to compare

This update brings the following changes since the 5.1.6 release:

Fixed

  • Fixed possible NullPointerException during socket receive (PR #3285)
  • Fixed inconsistencies between source and reference projects (PR #3180)

Changed