sqlserverdrivers
255 TopicsODBC 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.6KViews0likes1CommentAll about SQL drivers and access tokens
We often get support escalations related to failures around expired access tokens when using Microsoft Entra ID (formerly Azure Active Directory) authentication. There is a lot of nuance in the various drivers about how and when access tokens are used and when they get renewed after expiring. I’m going to do a deep-dive and try to explain some of the details here. This post is mainly targeted at people who have to troubleshoot issues in this area or those who are building large services and need to understand the impact of their authentication choices.6.3KViews3likes0CommentsAnnouncing General Availability of the mssql-python Driver
We’re thrilled to announce that the mssql-python driver is now Generally Available! 🎉 This milestone marks a major step forward in delivering a modern, high-performance, and developer-friendly experience for Python developers working with SQL Server, Azure SQL and SQL databases in Fabric. Why mssql-python? The mssql-python driver is a DB-API 2.0 compliant driver designed from the ground up to provide speed, simplicity, and security for Python applications connecting to SQL Server. We think data and devops engineers, analysts, and developers who use Python for configuration, analysis or AI will all find something they like. Here’s what makes it stand out: 🚀 Fast and Cross-platform The mssql-python driver is built on an optimized C++ core that delivers high performance and a consistent API across operating systems. Internal benchmarks show that the mssql-python driver performs well across common SQL operations such as SELECT, INSERT, UPDATE, and DELETE. Complex queries, joins, and stored procedures also perform well, making it ideal for both transactional and analytical workloads. 📦 One-Line Installation Whether you are just getting started or sharing scripts you have written, the mssql_python driver makes it easier than ever. Install the driver with a single command: pip install mssql-python No extra dependencies on Windows, no complicated configurations - just install and start coding. 🔐 Simplified Entra ID Authentication Security shouldn’t be hard. The mssql-python driver offers built-in support for Microsoft Entra ID (formerly Azure AD) authentication, reducing complexity and eliminating the need for custom token handling. This makes it easier to build secure, enterprise-grade applications without extra overhead. The mssql-python driver supports Active Directory Default authentication across all operating systems, making it easier to remove credentials from your code while still allowing you to share a script that just works. Key Highlights Cross-Platform Support: Works seamlessly on Windows, Linux, and macOS (including Apple Silicon). Connection Pooling: Efficient, configurable pooling for high-performance applications. Modern Python Experience: Clean APIs, better diagnostics, and improved error handling. Get Started Today Upgrade your Python data workflows with the new mssql-python driver: pip install mssql-python Check out the GitHub repository for documentation, examples, and to join the community. You can also go directly to our PyPI page to download the latest release. Visit the aka.ms/mssql-python#get-started to view more quickstarts. What’s Next? We’re committed to continuous improvement. Upcoming releases will focus on bulk insert optimizations, ORM integrations, and community-driven enhancements. Stay tuned for updates and share your feedback on GitHub!2.3KViews1like0CommentsJDBC 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 Engel248Views0likes0CommentsReleased: 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 Engel432Views1like0CommentsReleased: 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 Engel647Views0likes2CommentsEarly 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 Engel232Views0likes0CommentsHotfix: 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 Engel270Views1like0CommentsAnnouncing 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!1.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 Engel3KViews0likes0Comments