sqlserverdrivers
254 TopicsJDBC Driver 13.2 for SQL Server Released
Version 13.2 of the Microsoft JDBC Driver for SQL Server has been released. Version 13.2.0 brings several added features, changes, and fixed issues over the previous production release. Added Feature Details JSON datatype support Native support for SQL Server’s new JSON data type with APIs for inserts, selects, stored procedures, and bulk copy. For more information, see JSON data type. Order hints for bulk copy operations Support for specifying order hints when using SQLServerBulkCopy to improve bulk copy performance. Add new trusted AKV URLs for FR and DE Registered four new Azure Key Vault and Managed HSM endpoints for France and Germany. Vector datatype support Native support for SQL Server’s new VECTOR data type with APIs for inserts, selects, stored procedures, and bulk copy. For more information, see Vector data type. New connection options, quotedIdentifier and concatNullYieldsNull New connection options, quotedIdentifier and concatNullYieldsNull, to control QUOTED_IDENTIFIER and CONCAT_NULL_YIELDS_NULL session settings for both new and pooled connections. Support for temporal and money datatypes when using bulk copy for batch insert operations Support for batch inserts of DATETIME, DATE, MONEY, etc., when using the useBulkCopyForBatchInsert option. Changed Change Details Use sys.all_objects for Accurate Function and Procedure Filtering. Updated getFunctions() and getProcedures() to use sys.all_objects to give correct results post filtering. Fixed issues Many bug fixes detailed in the release notes Getting the latest release The latest bits are available to download from Microsoft, from the GitHub repository, and via Maven Central. Add the JDBC 13.2 RTW driver to your Maven project by adding the following code to your POM file to include it as a dependency in your project (choose .jre8 for Java 8/1.8 or .jre11 for Java 11 and up). <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>13.2.0.jre11</version> </dependency> Help us improve the JDBC Driver by filing issues on GitHub or contributing to the project. David Engel124Views0likes0CommentsReleased: General Availability of Microsoft.Data.SqlClient 6.1
We have released for general availability Microsoft.Data.SqlClient 6.1. This .NET Data Provider for SQL Server provides general connectivity to the database and supports all the latest SQL Server features for applications targeting .NET, .NET Framework, and .NET Standard. To try out the new package, add a NuGet reference to Microsoft.Data.SqlClient in your application. If you've been following our preview releases, you know we've been busy working to add features and improve stability and performance of the Microsoft.Data.SqlClient library. Highlights Some of the highlights of new features in 6.1 over the 6.0 release of Microsoft.Data.SqlClient include: Added dedicated SQL Server vector data type support Read more Revived .NET Standard 2.0 target support Added packet multiplexing support to improve large data type async read performance (See Lowlight) Lowlight The initial release, 6.1.0, had regressions introduced by the changes to improve large data type async read performance. The 6.1.0 release was delisted and 6.1.1 was released with the performance changes reverted to maintain stability and reliability of the library. Fixing the performance of fetching large data types in async mode was the highest user-upvoted issue in our GitHub repository and had been worked on for a long time. We regret that the changes introduced regressions and are taking steps to address them as well as expand testing to cover the scenarios that were affected to ensure we don't regress those scenarios in the future. We hope that the performance changes can be brought forward in a future release, but stability of the library will always be a higher priority for us. For the full list of added features, fixes, and changes in Microsoft.Data.SqlClient 6.1, please see the Release Notes. Again, to try out the new package, add a NuGet reference to Microsoft.Data.SqlClient in your application. If you encounter any issues or have any feedback, head over to the SqlClient GitHub repository and submit an issue. David Engel258Views0likes0CommentsReleased: Microsoft.Data.SqlClient 6.1 Preview 2
Microsoft.Data.SqlClient 6.1 Preview 2 has been released. This release contains improvements and updates to the Microsoft.Data.SqlClient data provider for SQL Server. This 6.1 preview includes a couple of significant additions and many fixes and changes over the 6.1 Preview 1 release (which, if you missed it, had a significant performance increase for async reading of large objects). 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 Reduced allocations when opening a connection. (#3364) Various performance improvements related to TDS parsing. (#3337, #3377, #3422) Improved native AOT support. (#3364, #3369, #3401) For the full list of changes in Microsoft.Data.SqlClient 6.1 Preview 2, please see the Release Notes. To try out the new package, add a NuGet reference to Microsoft.Data.SqlClient in your application and pick the 6.1 preview 2 version. We appreciate the time and effort you spend checking out our previews. It makes the final product that much better. If you encounter any issues or have any feedback, head over to the SqlClient GitHub repository and submit an issue. David Engel573Views0likes2CommentsEarly technical preview of JDBC Driver 13.1.0 for SQL Server released
We have released a new early technical preview of the JDBC Driver for SQL Server which contains several additions and changes. Precompiled binaries are available on GitHub and also on Maven Central. Below is a summary of the changes in 13.1.0 over version 12.10. Added Vector datatype support #2634 What was added: Native support for SQL Server’s new VECTOR data type with APIs for inserts, selects, stored procedures, and bulk copy. Who benefits: Developers building AI/ML workloads or semantic search applications using vector data in SQL Server. Impact: Enables native vector storage and access via JDBC, eliminating the performance overhead of managing vector data as strings. New connection options, quotedIdentifier and concatNullYieldsNull #2618 What was added: New connection options, quotedIdentifier and concatNullYieldsNull, to control QUOTED_IDENTIFIER and CONCAT_NULL_YIELDS_NULL session settings for both new and pooled connections. Who benefits: Developers needing Sybase-default behavior for their applications. Impact: Reduces Sybase migration effort by allowing control of these session values. Support for temporal and money datatypes when using bulk copy for batch insert operations #2670 What was added: Support for batch inserts of DATETIME, DATE, MONEY, etc., when using the useBulkCopyForBatchInsert option. Who benefits: High-volume data insert users. Impact: Improves performance for previously unsupported types (except in Azure Synapse Analytics (formerly Azure SQL DW). Mockito integration into JDBC driver tests #2644 What was added: Mockito added as a test dependency. Who benefits: Developers and contributors writing unit tests. Impact: Enables better control and test coverage. Changed releaseSavepoint exception type standardized to SQLFeatureNotSupported #2583 What changed: SQLServerException replaced with SQLFeatureNotSupportedException to comply with JDBC specification. Who benefits: Developers expecting JDBC standard exceptions. Impact: Enables better exception handling in client code. ActiveDirectoryPassword authentication deprecated #2624 What changed: Added deprecation warning for Microsoft Entra ID password authentication method. Who benefits: Microsoft Entra ID authentication users. Impact: Encourages migration to more secure methods. Include Columnstore indexes in getIndexInfo() #2598 What changed: Replaced sp_statistics with a custom query to support all index types. Who benefits: Developers using metadata APIs. Impact: More accurate index metadata. Corrected schema filtering in getSchemas() #2643 What changed: Ensured schemas are properly filtered when a catalog name is provided. Who benefits: Users of metadata functions. Impact: Complies with JDBC specification and avoids confusion. Increased redirection limit #2659 What changed: Raised maximum redirection hops from 1 to 10. Who benefits: Azure SQL Fabric users. Impact: Enables successful multi-hop connection scenarios. Fixed issues Session recovery with Entra ID authentication and redirect mode #2668 What was fixed: Redirect information is now followed during session recovery when using Entra ID authentication. Who benefits: Azure SQL DB users using Entra ID and connection resiliency. Impact: Prevents connection recovery failures. Javadoc build warnings #2640 What was fixed: Cleaned up invalid Javadoc syntax. Who benefits: Developers building the driver. Impact: Cleaner builds, better docs. OffsetDateTime formatting in SQLServerDataTable #2652 What was fixed: The OffsetDateTime toString() method was omitting seconds when seconds are zero, which resulted in the server rejecting those records. Used DateTimeFormatter to avoid this invalid format. Who benefits: Users inserting OffsetDateTime values. Impact: Prevents conversion errors. String comparison in SQLServerDataTable.equals() #2653 What was fixed: Replaced == with .equals() for strings. Who benefits: Anyone comparing data tables. Impact: Accurate comparison behavior. PreparedStatement metadata caching for encrypted columns #2663 What was fixed: Fixed loss of type metadata across PreparedStatement reuse. Who benefits: Users of Always Encrypted with secure enclaves. Impact: Prevents insert failures in batch encryption. Make IBM security module optional #2636 What was fixed: IBM security dependency is now optional. Who benefits: Applications not using IBM modules. Impact: Avoids classloading issues. Invalidate enclave session on reconnect #2638 What was fixed: Enclave session cache no longer reused across reconnects. Who benefits: Users of Always Encrypted with secure enclaves in failover configurations. Impact: Prevents internal enclave errors due to invalid enclave session references after failover. File path error handling in ConfigurableRetryLogic #2650 What was fixed: Robust error handling for missing/unreadable retry config files. Who benefits: All users. Impact: Prevents driver errors due to application file path issues. Suppressed CodeQL warnings for crypto usages #2677 What was fixed: Suppressed CodeQL security warnings for cryptographic use cases. Who benefits: Reviewers using CodeQL. Impact: Maintains compatibility and audit clarity. Batch insert fix for case-sensitive column name mismatch #2695 What was fixed: executeBatch() now respects case sensitivity of collations when matching column names. Who benefits: Applications using case-sensitive/case-insensitive schemas. Impact: Avoids metadata retrieval failures during batch inserts. Getting the latest release The latest bits are available on our GitHub repository, and Maven Central. Add the JDBC preview driver to your Maven project by adding the following code to your POM file to include it as a dependency in your project (choose .jre8 for Java 8 or .jre11 for Java 11 and up). <dependency> <groupid>com.microsoft.sqlserver</groupid> <artifactid>mssql-jdbc</artifactid> <version>13.1.0.jre11</version> </dependency> Help us improve the JDBC Driver by filing issues on GitHub or contributing to the project. Please also check out our tutorials to get started with developing apps in your programming language of choice and SQL Server. David Engel196Views0likes0CommentsHotfix: JDBC Driver 12.10.1 for SQL Server Released
We recently released an update to Microsoft JDBC Driver for SQL Server, version 12.10.1. The update addresses a few issues on top of the 12.10.0 release. Fixed issues Updated OSGi packaging to make com.ibm.security.auth.module and com.sun.security.auth.module optional imports, preventing deployment failures Invalidate enclave session during connection (re)connect to avoid caching an invalid session in the event of a failover Fixed an error on load when the application's installation directory contained a space (readFromFile() fix) Increased the max number of redirections per connection to 10 Fixed edge case where subsequent PreparedStatement inserts may fail when using Always Encrypted Fixed idle connection resiliency when connecting via a redirected connection and using Entra authentication Getting the latest release The latest bits are available to download from Microsoft, from the GitHub repository, and via Maven Central. Add the JDBC 12.10.1 RTW driver to your Maven project by adding the following code to your POM file to include it as a dependency in your project (choose .jre8 for Java 8/1.8 or .jre11 for Java 11 and up). <dependency> <groupid>com.microsoft.sqlserver</groupid> <artifactid>mssql-jdbc</artifactid> <version>12.10.1.jre11</version> </dependency> Help us improve the JDBC Driver by filing issues on GitHub or contributing to the project. David Engel230Views1like0CommentsAnnouncing the Public Preview of mssql-python
We’re excited to announce the public preview of the mssql-python driver with new platform support and powerful features for Microsoft SQL Server and the Azure SQL family, now available on GitHub: mssql-python. Join us and contribute in shaping the future of Python connectivity with SQL Server! MacOS Support The mssql-python driver is now compatible with macOS ARM-based systems, expanding support for developers using Apple Silicon (M-Series) devices. This adds to our growing cross-platform story, and we’re not done yet — Linux support is coming soon! Connection Pooling We’ve built a robust, configurable connection pooling system to help boost performance and optimize resource usage. Key highlights: Connection Reuse: Reuses existing alive connections instead of creating new ones, improving performance. Max Pool Size Limit: Enforces a configurable maximum number of connections per pool to limit resource consumption. Idle Connection Pruning: Automatically disconnects and removes connections idle beyond a configurable timeout to free resources. Multiple Pools by Connection String: Maintains separate pools keyed by connection string, supporting multiple distinct databases/endpoints. Thread Safety: Uses mutex locking for safe concurrent access in multi-threaded environments. Connection Health Checking: Validates connections are alive before reuse and discards dead ones. Explicit Connection Reset: Resets connections before reuse to clear session state and ensure clean context. Configurable Global Pool Settings: Provides a singleton manager to configure default max pool size and idle timeout for all pools. Simple Global API: Exposes easy-to-use functions to configure pooling and acquire pooled connections. Logging: Outputs console logs for major events like creation, acquisition, release, pruning, and errors for easy debugging. Note: This feature is currently available on Windows only. macOS and Linux support is in progress. What's Next Here’s a sneak peek at what we’re working on for upcoming releases: Linux Support Connection Pooling for macOS and Linux Support for Bulk Copy for accelerated data transfer Microsoft Entra ID (formerly Azure AD) Authentication for macOS and Linux Try It and Share Your Feedback! Ready to test the latest features? We invite you to: Try it out: Check-out the mssql-python driver and integrate it into your projects. Share your thoughts: Open issues, suggest features, and contribute to the project. Join the conversation: GitHub Discussions | SQL Server Tech Community. We look forward to your feedback and collaboration!1KViews4likes0CommentsOLE DB Driver 19.4.1 and 18.7.5 for SQL Server Released
Versions 19.4.1 and 18.7.5 of the Microsoft OLE DB Driver for SQL Server have been released. Both versions fix a couple of bugs and version 19.4 switches from ADAL to a new underlying authentication library for Microsoft Entra authentication methods. 19.4.1 Changes Microsoft SQL Driver Authentication library (mssql-auth.dll) replaces ADAL. mssql-auth.dll is installed as part of installation process. Added support for three new languages, Czech, Polish, and Turkish (to align with Visual Studio and SSMS supported languages). A single 64-bit MSI package is provided that installs x64 or Arm64 based on the OS platform. Modified the installer to include Code and SDK components by default (to solve setup errors when the driver is redistributed). Bug Fixes Fixed a prepared statement issue when connection recovery is performed. Fixed an installer issue to prevent the installer from asking for a pending file reboot prior to installation when it's not actually necessary. Modified the installer to not copy the TrustServerCertificiate registry flag value from a previously installed major version; and instead use the installer default value for the flag. For download and full details, see the 19.4.1 release notes. 18.7.5 Changes Added support for three new languages, Czech, Polish, and Turkish (to align with Visual Studio and SSMS supported languages). Modified the installer to include Code and SDK components by default (this is to solve setup errors when the driver is redistributed). Bug Fixes Fixed a prepared statement issue when connection recovery is performed. Fixed an installer issue to prevent the installer from asking for a pending file reboot prior to installation when it's not actually necessary. For download and full details, see the 18.7.5 release notes. The updated drivers can be downloaded directly from Microsoft. David Engel2.3KViews0likes0CommentsWhy It’s Time to Migrate from System.Data.SqlClient to Microsoft.Data.SqlClient
Are you still using System.Data.SqlClient in your .NET applications? If so, it’s time to plan your move to Microsoft.Data.SqlClient — the official, modern SQL Server driver designed for today’s platforms and tomorrow’s innovations. We get it: you’ve got legacy projects, tight deadlines, and a long list of reasons not to touch something that already “just works.” But let us show you why switching to Microsoft.Data.SqlClient is worth it - and how we’re trying to make that easier. The Quick TL;DR Microsoft.Data.SqlClient is the only actively developed SQL driver for .NET from Microsoft. System.Data.SqlClient (SDS in .NET Framework) is in maintenance mode and will not receive future feature updates. System.Data.SqlClient (SDS NuGet package from .NET Core) will be deprecated with .NET 9 and will not support .NET 10 moving forward. Announcement: System.Data.SqlClient package is now deprecated | Microsoft Community Hub Microsoft.Data.SqlClient unlocks new capabilities — including AI features like vector search, enhanced performance, secure by default, and cross-platform support. We’re asking System.Data.SqlClient users to take a short survey: https://aka.ms/sds-to-mds-survey to help us understand what’s blocking migration and how we can help. Why Migrate? 1. Security First Security is a top priority for most organizations — and Microsoft.Data.SqlClient was built with that in mind. Features like TLS encryption enabled by default ensure your connections are more secure from day one, helping meet compliance and internal audit standards with less configuration. By contrast, System.Data.SqlClient leaves many of these safeguards to the developer — increasing the risk of misconfigurations in production. 2. Performance Improvements With each release, Microsoft.Data.SqlClient introduces targeted optimizations that benefit real-world workloads. In internal benchmarks, we’ve seen performance improvements for high-throughput, concurrent workloads. If your systems process high volumes of queries, switching to Microsoft.Data.SqlClient could deliver immediate value — with zero SQL refactoring required. 3. AI-Ready (Vector Support) With the rise of AI and semantic search, SQL Server is adding support for vector-based queries (.NET/C# Native Vector Search Samples) — and Microsoft.Data.SqlClient is your path to integrating those features into .NET applications. This is more than a new capability — it's a shift in how modern apps handle intelligent data retrieval. System.Data.SqlClient does not support these features and will not be updated to do so. 4. Cross-Platform & Cloud-Native Ready Microsoft.Data.SqlClient was designed to work seamlessly across Windows, Linux, macOS, and containers — unlocking true portability for your .NET applications. Whether you're migrating to .NET 6+, containerizing workloads, or deploying cross-platform services, Microsoft.Data.SqlClient is built to support your modern architecture. 5. Reduced Maintenance & Operational Risk System.Data.SqlClient is no longer receiving active development. Using it in production today means: Increasing risk of encountering unresolved bugs and security vulnerabilities Missing out on new SQL Server feature support Dealing with outdated NuGet metadata and sparse documentation Longer support and onboarding time for new engineers unfamiliar with legacy patterns By contrast, Microsoft.Data.SqlClient has a dedicated roadmap, documentation, and community, with consistent investments from Microsoft engineering. Are you still using System.Data.SqlClient? We’ve asked ourselves the same question — and now we want to ask you directly. We’re asking System.Data.SqlClient users to take a short survey: https://aka.ms/sds-to-mds-survey to help us understand what’s blocking migration and how we can help. Help us understand what’s holding you back from migrating. Your feedback will directly inform our documentation, tooling, and product roadmap. The survey takes less than 5 minutes and is intended for developers, architects, and tech leads. Have you already migrated? - Tell us what helped, what was painful, and what would’ve saved you time. We want to make it easier for the next team. How to migrate? Add the NuGet package to your project, then update your references and using statements. Our porting cheat sheet provides a step-by-step set of changes you may need to make. Update your project references: Replace references to System.Data.SqlClient with Microsoft.Data.SqlClient. Modify your using statements: Update your using statements in your code files from System.Data.SqlClient to Microsoft.Data.SqlClient. Test your application: Thoroughly test your application to ensure that it works as expected after the migration. We also plan to support semi-automatic migration via .NET Upgrade Assistant. Resources Frequently Asked Questions - dotnet/SqlClient Wiki - GitHub Introduction to Microsoft.Data.SqlClient namespace SQL Server and ADO.NET (Microsoft.Data.SqlClient) Microsoft.Data.SqlClient API Browser Let’s move forward together. The Microsoft SQL Drivers Team3.4KViews2likes2CommentsODBC Driver 18.5 for SQL Server Released
Version 18.5 of the Microsoft ODBC Driver 18 for SQL Server has been released. Version 18.5 brings some minor changes and fixes to the driver. Added Expose the Packet Size as a connection string option Some authentication options leverage a new DLL, mssql-auth.dll, now included with the driver installation Added support for 3 new languages Czech, Polish, and Turkish Modify the installer to install both features (Core and SDK) by default. This addresses installation issues when the driver is installed by another product that redistributes the driver, installing all features, after the driver has already been installed without all features. Fixed Fix connection recovery to obtain the active primary node when a server moves Fix crashes under low-memory conditions Fix some error messages Next steps For Windows installations, you can directly download the Microsoft ODBC Driver 18 for SQL Server. Linux and macOS packages are also available. For installation details see the online instructions. David Engel2.4KViews0likes0Comments