sqlserverprogrammability
104 TopicsSQL Server 2025 - AI ready enterprise database from ground to cloud
The new version of SQL Server is designed to be an AI-ready enterprise database platform, integrating seamlessly from ground to cloud to Fabric. In this blog, we will explore the key features and enhancements that make SQL Server 2025 a game-changer for developers, database administrators, and organizations. The new capabilities build upon more than three decades of SQL Server innovation in performance, availability, reliability, and security, adding a host of new features that empower developers, protect data, and enable seamless analytics through the Microsoft Fabric integration. AI integration SQL Server 2025 offers features to support enterprise applications. This version integrates AI with customer data using AI capabilities within the SQL engine, ensuring that AI models remain isolated securely. The built-in vector data type allows hybrid AI vector searches, combining vectors with SQL data for efficient and accurate data retrieval. This integration facilitates AI application development and retrieval-augmented generation (RAG) patterns, and AI Agents using the familiar T-SQL syntax. The new vector data type stores vector embeddings alongside relational data, enabling semantically related searches within SQL Server. New vector functions perform operations on vectors in binary format, enabling applications to store and manipulate vectors directly within the SQL database engine. SQL Server 2025 includes T-SQL functions that provide the necessary tools for working with embeddings, without requiring detailed knowledge of their usage. Vectors enable AI models to identify similar data using the K-Nearest Neighbors (KNN) algorithm, with metrics like dot product or cosine similarity. To enhance scalability, SQL Server 2025 incorporates Approximate Vector Index and Vector Search, leveraging Approximate Nearest Neighbors (ANN) for faster, resource-efficient, and accurate results. SQL Server 2025 introduces advanced AI model management capabilities designed to enhance the efficiency and security of interacting with Azure OpenAI and other AI models. SQL Server 2025 provides options for deploying AI models either on-premises or in the cloud, with compatibility for Azure OpenAI, OpenAI endpoints, and Ollama. With all these capabilities, SQL Server 2025's hybrid search represents a paradigm shift in how organizations access and utilize data. Through a blend of keyword and vector searches, businesses can unlock deeper insights, improve customer satisfaction, and harness the full potential of their data assets. Our customer, Kramer & Crew GmbH & Co, who participated in our Early Adoption Program (EAP) aka private preview shared us below. "Joining the EAP was a great opportunity to explore the new AI, security, performance, Fabric, and Azure Arc features! With the new semantic search and RAG capabilities in SQL Server 2025, we can empower existing GenAI solutions with data embeddings to create next-generation, more intelligent AI applications. By connecting systems (e.g., ITSM, CRM, ERP, and others), we deliver a seamless, natural conversational experience across enterprise environments." Markus Angenendt, Data Platform Infrastructure Lead, Kramer & Crew GmbH & Co. KG Developer productivity SQL Server 2025 introduces several exciting developer features designed to enhance developer productivity. New GitHub Copilot: GitHub Copilot transforms coding with AI-driven suggestions, streamlining workflows and enhancing efficiency. Its agent mode proposes edits, tests, and validates changes, enabling developers to focus on complex tasks. SQL Server Management Studio (SSMS) 21: Releasing SQL Server Management Studio (SSMS) 21, for general availability (GA). SSMS 21 includes support for SQL Server 2025. The Copilot in SSMS – now available in preview. New Python Driver: The Python driver for SQL Server and Azure SQL offers efficient, asynchronous connectivity across platforms like Windows, Linux, and macOS. It's designed to simplify development and enhance performance for data-driven applications. Standard Developer Edition: SQL Server 2025 Standard Developer Edition is a free edition licensed for development and test purposes. The intent is to enable all features of SQL Server Standard Edition to facilitate the development and testing of new applications that use the Standard Edition in production. This edition complements the existing Enterprise Developer Edition. JSON data type and aggregates: SQL Server 2025 includes a native JSON data type, allowing for more efficient storage and manipulation of JSON data up to 2GB storage per JSON document. This type supports various JSON aggregate functions to facilitate the aggregation of JSON data. Queries over JSON documents can be optimized by creating a JSON index and using JSON functions and methods to modify and search data natively. Regular expressions (RegEx): SQL Server 2025 introduces support for Regular Expressions (RegEx), providing powerful tools for developers to efficiently query and manipulate text data, better matching pattern than “LIKE” operator. External REST endpoint invocation: The sp_invoke_external_rest_endpoint stored procedure allows for the native invocation of any REST endpoints directly from within T-SQL, enabling seamless integration with external web services. Change event streaming (CES): Enables real-time data integration by streaming data changes directly from SQL Server to Azure Event Hubs with Kafka compatibility, facilitating near real-time analytics and event-driven architecture based on Transaction log. Consider using Change Event Streaming for CDC as it eliminates the need for I/O operations, offering a more efficient and streamlined solution for developers. New T-SQL functions: Several new T-SQL functions introduced to simplify complex queries and increase workload performance. For example, the PRODUCT() aggregate function calculates the product of a set of values. New Chinese collations: Support for GB18030-2022 collation standard. Overall, these developer-centric enhancements in SQL Server 2025 streamline the process of building modern, AI powered and data-rich applications. They reduce the need for custom code and encourage a more declarative, in-database approach to data processing, which can lead to simpler architecture and better performance. “The introduction of the new PRODUCT() aggregate function in SQL Server 2025 has streamlined this process, reducing code complexity while improving computational efficiency by over 30%. This enhancement accelerates key economic calculations, including the computation of the U.S. Gross Domestic Product (GDP), and also strengthens organizations’ ability to deliver timely, accurate data to policymakers and to the public." -- David Rozenshtein and Sandip Mehta, IT Modernization Architects, Omnicom Consulting Group” Secure by default SQL Server 2025 delivers a range of advanced security features designed to enhance data protection, authentication, and encryption. Here are the key security enhancements. Stop using client secrets and passwords: SQL Server 2025 supports managed identity authentication enabled by Azure Arc. This feature allows secure authentication for outbound connections to Azure resources and inbound connections for external users. For example, backup to Azure Blob Storage can now use SQL Server managed identity for authentication. Stronger encryption: To protect the key material of a symmetric key SQL Server stores the key material in encrypted form. Historically, this encryption utilized PKCS#1 v1.5 padding mode; Optimized starting with SQL Server 2025, the encryption uses Optimal Asymmetric Encryption Padding (OAEP) for encryption by certificate or asymmetric key. Stronger password encryption: To store a SQL user password we use an iterated hash algorithm, RFC2898, also known as a password-based key derivation function (PBKDF). This algorithm uses SHA-512 hash but hashes the password multiple times (100,000 iterations), significantly slowing down brute-force attacks. This change enhances password protection in response to evolving security threats and helps customers comply with NIST SP 800-63b guidelines. Strict connection encryption: The implementation of Extended TDS 8.0 support and TLS 1.3 for stringent encryption protocols enhances the security of internal component communications within SQL Server 2025. Optimized security cache: When security cache entries are invalidated, only those entries belonging to the impacted login are affected. This minimizes the impact on non-cache permissions validation for unaffected login users. In summary, SQL Server 2025 continues the product’s legacy of top-notch security by incorporating modern identity and encryption practices. By embracing Azure AD, managed identities, and stronger cryptography by default, it helps organizations avoid vulnerabilities and meet compliance requirements more easily, protecting data both at rest and in motion. Mission critical database engine SQL Server 2025 introduces significant performance and reliability enhancements designed to optimize workload efficiency and reduce troubleshooting efforts. Utilize insights gained from prior executions of expressions within queries enhance the performance of future executions. Optional parameter plan optimization helps SQL Server choose the optimal execution plan based on runtime parameter values, reducing performance issues caused by parameter sniffing. Optimized locking improves concurrency by avoiding blocking and lock escalation and reduces lock memory usage. Enhancements in batch mode processing and columnstore indexes further improve SQL Server as a mission-critical database for analytical workloads. Query Store for readable secondaries allows you to monitor and adjust the performance of read-only workloads executing against secondary replicas. In SQL Server 2025 this is enabled by default. Persisted temporary statistics for readable secondaries are now saved to the primary replica, ensuring permanence and avoiding recreation after restarts, which could degrade performance. A new query hint blocks future execution of problematic queries, such as nonessential queries affecting application performance. Optimized Halloween protection reduces tempdb space consumption and improves performance of data modification queries. Tempdb space resource governance improves reliability by restricting workloads from consuming excessive tempdb space. Accelerated database recovery in tempdb provides instantaneous transaction rollback and aggressive log truncation for transactions in tempdb. Fast failover for persistent health issues: The Windows Failover Cluster (WSFC) can be configured to failover the availability group resource promptly upon detection of a persistent health issue for example long I/O . Enhancements have been made to the undo-of-redo process during disaster recovery failover to asynchronous replicas, improving synchronization performance. Internal synchronization mechanisms have been improved to reduce network saturation when the global primary and forwarder replicas are in asynchronous commit mode. Improved health check time-out diagnostics. Configure a distributed availability group between two contained availability groups. The new backup compression algorithm, ZSTD, provides significant enhancements in compression efficiency while utilizing fewer resources. You can now offload FULL, DIFFERENTIAL, and T-LOG backups to a secondary replica in an Always On Availability Group, freeing your primary replica to handle production workloads. Fabric integration and Analytics Database mirroring to Fabric can continuously replicate data from a database in a SQL Server 2025 instance, on-premises or in virtual machines. A mirrored database item is a read-only, continuously replicated copy of your SQL Server database data in OneLake. SQL Server now natively supports querying CSV, Parquet, and Delta files using OPENROWSET, CREATE EXTERNAL TABLE, or CREATE EXTERNAL TABLE commands, without needing PolyBase Query Service. SQL Server on Linux tmfs filesystem is supported for tempdb in SQL Server 2025 on Linux. This enhancement can improve performance for tempdb-heavy workloads by utilizing memory (RAM) instead of disk-based filesystems. Custom password policy enforces a custom password policy for SQL authentication logins in SQL Server on Linux. PolyBase in SQL Server for Linux can now connect to ODBC data sources. Discontinued services Data Quality Services (DQS) is discontinued in this version of SQL Server. We continue to support DQS in SQL Server 2022 (16.x) and earlier versions. Master Data Services (MDS) is discontinued in this version of SQL Server. We continue to support MDS in SQL Server 2022 (16.x) and earlier versions. Get started SQL Server 2025 is not just an iterative update; it’s a substantial upgrade that bridges the worlds of databases and AI, on-premises and cloud. It retains full support for existing applications and T-SQL code, so upgrades can be done with minimal changes. By adopting SQL Server 2025, organizations can answer new questions with their data, serve applications at a greater scale, and integrate more closely with modern data platforms – all while relying on the familiar, reliable foundation that SQL Server has provided for years. Ready to try it out? Get started today: aka.ms/getsqlserver2025. Learn more Microsoft Build 2025: SQL Server 2025: The Database Developer Reimagined Docs: aka.ms/Build/sql2025docs Announcement blog: aka.ms/sqlserver2025 SQL Server homepage: https://www.microsoft.com/en-us/sql-server MSSQL Extension for Visual Studio Code with GitHub Copilot: https://aka.ms/vscode-mssql-copilot14KViews2likes4CommentsHow to create an autonomous transaction in SQL Server 2008
First published on MSDN on Aug 22, 2008 I have been asked by many customers and partners, especially those migrating from Oracle, this question: how to create an autonomous transaction in SQL Server? It turns out to be a tricky thing to do since SQL Server doesn't have built-in autonomous transaction support like Oracle.13KViews0likes0CommentsSQL Server 2008 : new binary – hex string conversion functionality can dramatically improve related query performance by orders of magnitude.
First published on MSDN on Oct 31, 2008 In previous SQL Server releases it wasn’t possible to convert binary data to string characters in hex format directly, because SQL Server did not have a built-in Transact-SQL command for converting binary data to a hexadecimal string.5.3KViews0likes0CommentsXML Data Type Limitations
First published on MSDN on May 23, 2006 I'd like to take some time today to explain some of the seemingly arbitrary limits placed on the XML data type, specifically those related to ID/IDREF validation, complex XML Schema types, the depth limit for XML data, and the enigmatic "XSD schema too complex" error.4.6KViews0likes1CommentMicrosoft.Data.SqlClient 7.0 Is Here: A Leaner, More Modular Driver for SQL Server
Today we're shipping the general availability release of Microsoft.Data.SqlClient 7.0, a major milestone for the .NET data provider for SQL Server. This release tackles the single most requested change in the repository's history, introduces powerful new extensibility points for authentication, and adds protocol-level features for Azure SQL Hyperscale, all while laying the groundwork for a more modular driver architecture. If you take away one thing from this post: the core SqlClient package is dramatically lighter now. Azure dependencies have been extracted into a separate package, and you only pull them in if you need them. dotnet add package Microsoft.Data.SqlClient --version 7.0.0 The #1 Request: A Lighter Package For years, the most upvoted issue in the SqlClient repository asked the same question: "Why does my console app that just talks to SQL Server pull in Azure.Identity, MSAL, and WebView2?" With 7.0, it doesn't anymore. We've extracted all Azure / Microsoft Entra authentication functionality into a new Microsoft.Data.SqlClient.Extensions.Azure package. The core driver no longer carries Azure.Core, Azure.Identity, Microsoft.Identity.Client, or any of their transitive dependencies. If you connect with SQL authentication or Windows integrated auth, your bin folder just got dramatically smaller. For teams that do use Entra authentication, the migration is straightforward. Add one package reference and you're done: dotnet add package Microsoft.Data.SqlClient.Extensions.Azure No code changes. No configuration changes. You can also now update Azure dependency versions on your own schedule, independent of driver releases. This is something library authors and enterprise teams have been asking for. Pluggable Authentication with SspiContextProvider Integrated authentication in containers and cross-domain environments has always been a pain point. Kerberos ticket management, sidecar processes, domain trust configuration: the workarounds were never simple. Version 7.0 introduces a new public SspiContextProvider API on SqlConnection that lets you take control of the authentication handshake. You provide the token exchange logic; the driver handles everything else. var connection = new SqlConnection(connectionString); connection.SspiContextProvider = new MyKerberosProvider(); connection.Open(); This opens the door to scenarios the driver never natively supported: authenticating across untrusted domains, using NTLM with explicit credentials, or implementing custom Kerberos negotiation in Kubernetes pods. A sample implementation is available in the repository. Async Read Performance: Packet Multiplexing (Preview) One of the most community-driven features in 7.0 is packet multiplexing, a change to how the driver processes TDS packets during asynchronous reads. Originally contributed by community member Wraith2, this work delivers a significant leap in async read performance for large result sets. Packet multiplexing was first introduced in 6.1 and has been refined across the 7.0 preview cycle with additional bug fixes and stability improvements. In 7.0, it ships behind two opt-in feature switches so we can gather broader real-world feedback before making it the default: AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseCompatibilityAsyncBehaviour", false); AppContext.SetSwitch("Switch.Microsoft.Data.SqlClient.UseCompatibilityProcessSni", false); Setting both switches to false enables the new async processing path. By default, the driver uses the existing (compatible) behavior. We need your help. If your application performs large async reads (ExecuteReaderAsync with big result sets, streaming scenarios, or bulk data retrieval), please try enabling these switches and let us know how it performs in your environment. File your results on GitHub Issues to help us move this toward on-by-default in a future release. Enhanced Routing for Azure SQL Azure SQL environments with named read replicas and gateway-based load balancing can now take advantage of enhanced routing, a TDS protocol feature that lets the server redirect connections to a specific server and database during login. This is entirely transparent to your application. No connection string changes, no code changes. The driver negotiates the capability automatically when the server supports it. .NET 10 Ready SqlClient 7.0 compiles and tests against the .NET 10 SDK, so you're ready for the next major .NET release on day one. Combined with continued support for .NET 8, .NET 9, .NET Framework 4.6.2+, and .NET Standard 2.0 (restored in 6.1), the driver covers the full spectrum of active .NET runtimes. ActiveDirectoryPassword Is Deprecated: Plan Your Migration As Microsoft moves toward mandatory multifactor authentication across its services, we've deprecated SqlAuthenticationMethod.ActiveDirectoryPassword (the ROPC flow). The method still works in 7.0, but it's marked [Obsolete] and will generate compiler warnings. Now is the time to move to a stronger alternative: Scenario Recommended Authentication Interactive / desktop apps Active Directory Interactive Service-to-service Active Directory Service Principal Azure-hosted workloads Active Directory Managed Identity Developer / CI environments Active Directory Default Quality of Life Improvements Beyond the headline features, 7.0 includes a collection of improvements that make the driver more reliable and easier to work with in production. Better retry logic. The new SqlConfigurableRetryFactory.BaselineTransientErrors property exposes the built-in transient error codes, so you can extend the default list with your own application-specific codes instead of copy-pasting error numbers from source. More app context switches. You can now set MultiSubnetFailover=true globally, ignore server-provided failover partners in Basic Availability Groups, and control async multi-packet behavior, all without modifying connection strings. Better diagnostics on .NET Framework. SqlClientDiagnosticListener is now enabled for SqlCommand on .NET Framework, closing a long-standing observability gap. Connection performance fix. A regression where SPN generation was unnecessarily triggered for SQL authentication connections on the native SNI path has been resolved. Performance improvements. Allocation reductions across Always Encrypted scenarios, SqlStatistics timing, and key store providers. Upgrading from 6.x For most applications, upgrading is a package version bump: dotnet add package Microsoft.Data.SqlClient --version 7.0.0 If you use Microsoft Entra authentication, also add: dotnet add package Microsoft.Data.SqlClient.Extensions.Azure If you use ActiveDirectoryPassword, you'll see a compiler warning. Start planning your migration to a supported auth method. Review the full release notes in release-notes/7.0 for the complete list of changes across all preview releases. Thank You to Our Contributors Open-source contributions are central to SqlClient's development. We'd like to recognize the community members who contributed to the 7.0 release: edwardneal · ErikEJ · MatthiasHuygelen · ShreyaLaxminarayan · tetolv · twsouthwick · Wraith2 What's Next We're continuing to invest in performance, modularity, and modern .NET alignment. Stay tuned for updates on the roadmap, and keep the feedback coming. Your issues and discussions directly shape what we build. NuGet: Microsoft.Data.SqlClient 7.0.0 GitHub: dotnet/SqlClient Issues & Feedback: github.com/dotnet/SqlClient/issues Docs: Microsoft.Data.SqlClient on Microsoft Learn4.5KViews2likes5Comments