<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>rss.livelink.threads-in-node</title>
    <link>https://techcommunity.microsoft.com/t5/sql-server/ct-p/SQL-Server</link>
    <description>rss.livelink.threads-in-node</description>
    <pubDate>Mon, 13 Jul 2026 03:13:01 GMT</pubDate>
    <dc:creator>SQL-Server</dc:creator>
    <dc:date>2026-07-13T03:13:01Z</dc:date>
    <item>
      <title>mssql-python 1.11.0: Fixes for transaction semantics, Apple Silicon imports, and bulk copy</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/mssql-python-1-11-0-fixes-for-transaction-semantics-apple/ba-p/4535807</link>
      <description>&lt;P data-line="4"&gt;This release is about removing friction in real production paths. It fixes transaction handling in with blocks, restores clean-machine imports on Apple Silicon, improves NULL binary parameter binding, removes a class of hangs in SSH-tunnel-style forwarding setups, and unblocks bulk copy with service principal authentication.&lt;/P&gt;
&lt;H2 data-line="6"&gt;Upgrade&lt;/H2&gt;
&lt;LI-CODE lang="bash"&gt;pip install --upgrade mssql-python&lt;/LI-CODE&gt;
&lt;P data-line="12"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H2 data-line="14"&gt;Highlights&lt;/H2&gt;
&lt;H3 data-line="16"&gt;with connection:&amp;nbsp;now commits on success and rolls back on exception&lt;/H3&gt;
&lt;P data-line="18"&gt;The&amp;nbsp;Connection&amp;nbsp;context manager now implements the documented commit-on-success / rollback-on-exception behavior when&amp;nbsp;autocommit=False. The connection still closes on exit.&lt;/P&gt;
&lt;P data-line="20"&gt;Code like this now behaves the way most users already expected it to:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;import mssql_python

conn = mssql_python.connect(connection_string, autocommit=False)

with conn:
    cursor = conn.cursor()
    cursor.execute("INSERT INTO dbo.audit_log(message) VALUES (?)", ("created",))&lt;/LI-CODE&gt;
&lt;P data-line="32"&gt;If the code in the block succeeds, the insert is committed. If the code in the block raises an error, the transaction is rolled back.&lt;/P&gt;
&lt;H3 data-line="34"&gt;Apple Silicon imports work on clean machines again&lt;/H3&gt;
&lt;P data-line="36"&gt;We fixed the bundled macOS ODBC dylib configuration for every architecture shipped in the universal2 wheel.&lt;/P&gt;
&lt;P data-line="38"&gt;For Apple Silicon users, this removes a frustrating failure mode where&amp;nbsp;import mssql_python&amp;nbsp;could point at a missing Homebrew&amp;nbsp;unixODBC&amp;nbsp;path on a clean machine. In 1.11.0, the bundled libraries resolve correctly without a separate unixODBC install.&lt;/P&gt;
&lt;H3 data-line="40"&gt;NULL&amp;nbsp;BINARY&amp;nbsp;and&amp;nbsp;VARBINARY&amp;nbsp;parameters bind more reliably&lt;/H3&gt;
&lt;P data-line="42"&gt;We fixed the&amp;nbsp;SQLDescribeParam&amp;nbsp;ordinal remapping issue behind GitHub issue&amp;nbsp;#627.&lt;/P&gt;
&lt;P data-line="44"&gt;1.11.0 improves parameter binding for NULL binary values, especially in temp-table and table-variable scenarios. When automatic type resolution is not possible, the driver now gives actionable guidance instead of a vague failure, including cursor.setinputsizes() guidance for binary columns.&lt;/P&gt;
&lt;H2 data-line="46"&gt;Bug fixes worth calling out&lt;/H2&gt;
&lt;H3 data-line="48"&gt;Shutdown and parameter-typing paths no longer hang SSH-tunnel-style forwarders&lt;/H3&gt;
&lt;P data-line="50"&gt;We fixed hangs caused by holding the GIL across blocking ODBC operations.&lt;/P&gt;
&lt;P data-line="52"&gt;This matters most for users routing connections through an in-process Python TCP forwarder, including SSH-tunnel-style setups. Closing connections and cursors after parameterized queries, as well as executing parameterized queries containing&amp;nbsp;None, no longer wedge the interpreter in those paths.&lt;/P&gt;
&lt;H3 data-line="54"&gt;Bulk copy with service principal authentication no longer freezes&lt;/H3&gt;
&lt;P data-line="56"&gt;1.11.0 also picks up&amp;nbsp;mssql-py-core&amp;nbsp;0.1.6, which fixes a freeze affecting bulk copy with&amp;nbsp;Authentication=ActiveDirectoryServicePrincipal.&lt;/P&gt;
&lt;P data-line="58"&gt;If you are using service principal authentication for bulk ingest workloads, this release is worth taking promptly.&lt;/P&gt;
&lt;H2 data-line="60"&gt;Upgrading&lt;/H2&gt;
&lt;P data-line="62"&gt;For most users,&amp;nbsp;pip install --upgrade mssql-python&amp;nbsp;is all you need. If you had local workarounds for broken&amp;nbsp;with connection:&amp;nbsp;transaction behavior, Apple Silicon import issues, or binary&amp;nbsp;NULL&amp;nbsp;parameter binding, 1.11.0 is the release where those workarounds should become unnecessary.&lt;/P&gt;
&lt;P data-line="64"&gt;This is not a feature-heavy release. We opted to focus on the friction you are reporting in real production workflows:&lt;/P&gt;
&lt;UL data-line="66"&gt;
&lt;LI data-line="66"&gt;transactional&amp;nbsp;with&amp;nbsp;blocks now persist successful work&lt;/LI&gt;
&lt;LI data-line="67"&gt;Apple Silicon setup is smoother on clean machines&lt;/LI&gt;
&lt;LI data-line="68"&gt;binary&amp;nbsp;NULL&amp;nbsp;parameters are more reliable&lt;/LI&gt;
&lt;LI data-line="69"&gt;SSH-tunnel and threaded forwarding scenarios are less fragile&lt;/LI&gt;
&lt;LI data-line="70"&gt;service principal bulk copy is unblocked&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-line="72"&gt;Thank you&lt;/H2&gt;
&lt;P data-line="74"&gt;Thanks to everyone who filed issues, sent repros, and reviewed fixes in this cycle. Several of the changes in 1.11.0 came directly from concrete user reports in production-like environments, which made the failure modes easier to reproduce and fix.&lt;/P&gt;
&lt;P data-line="76"&gt;If you upgrade to 1.11.0 and hit anything unexpected, please open an issue in the repository.&lt;/P&gt;
&lt;P data-line="78"&gt;Repository:&amp;nbsp;&lt;A href="https://github.com/microsoft/mssql-python" data-href="https://github.com/microsoft/mssql-python" target="_blank"&gt;microsoft/mssql-python&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="78"&gt;Issue tracker: &lt;A href="https://github.com/microsoft/mssql-python/issues" data-href="https://github.com/microsoft/mssql-python/issues" target="_blank"&gt;open an issue&lt;/A&gt;&lt;/P&gt;
&lt;P data-line="78"&gt;Release notes:&amp;nbsp;&lt;A href="https://github.com/microsoft/mssql-python/releases/tag/v1.11.0" data-href="https://github.com/microsoft/mssql-python/releases/tag/v1.11.0" target="_blank"&gt;mssql-python v1.11.0&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jul 2026 17:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/mssql-python-1-11-0-fixes-for-transaction-semantics-apple/ba-p/4535807</guid>
      <dc:creator>DavidLevy</dc:creator>
      <dc:date>2026-07-10T17:00:00Z</dc:date>
    </item>
    <item>
      <title>mssql-python 1.10.0: Service Principal Bulk Copy, More Reliable Arrow Text, and a Core Timeout Fix</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/mssql-python-1-10-0-service-principal-bulk-copy-more-reliable/ba-p/4531096</link>
      <description>&lt;P data-line="2"&gt;We have released mssql-python 1.10.0 with improvements focused on authentication flexibility, cross-platform text reliability, and bulk load stability.&lt;/P&gt;
&lt;H2 data-line="4"&gt;Highlights&lt;/H2&gt;
&lt;H3 data-line="6"&gt;1) Bulk Copy now supports ActiveDirectoryServicePrincipal&lt;/H3&gt;
&lt;P data-line="8"&gt;Bulk Copy can now use&amp;nbsp;Authentication=ActiveDirectoryServicePrincipal.&lt;/P&gt;
&lt;P data-line="10"&gt;This release adds a token-factory callback path for Bulk Copy so tenant-aware tokens can be created during the FedAuth handshake, using the STS URL supplied by SQL Server.&lt;/P&gt;
&lt;P data-line="12"&gt;Why this matters:&lt;/P&gt;
&lt;UL data-line="14"&gt;
&lt;LI data-line="14"&gt;You can use service principals in Bulk Copy flows without switching auth modes.&lt;/LI&gt;
&lt;LI data-line="15"&gt;The behavior aligns better with real enterprise automation scenarios and non-interactive jobs.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="17"&gt;Example:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;import mssql_python

conn = mssql_python.connect(
    "Server=tcp:myserver.database.windows.net;"
    "Database=mydb;"
    "Authentication=ActiveDirectoryServicePrincipal;"
    "UID=&amp;lt;client-id-guid&amp;gt;;"
    "PWD=&amp;lt;client-secret&amp;gt;;"
    "Encrypt=yes;"
)

cur = conn.cursor()
cur.bulkcopy("mytable", [(1, "a"), (2, "b")])&lt;/LI-CODE&gt;
&lt;H3 data-line="37"&gt;2) Arrow text fetching is more robust across locale and OS differences&lt;/H3&gt;
&lt;P data-line="39"&gt;In the Arrow fetch path,&amp;nbsp;SQL_CHAR&amp;nbsp;values are now requested as&amp;nbsp;SQL_C_WCHAR&amp;nbsp;to ensure consistent Unicode handling. This makes Arrow-based reads more predictable across Windows, Linux, and macOS, including different encoding and locale configurations.&lt;/P&gt;
&lt;H3 data-line="43"&gt;3) Updated mssql-py-core to 0.1.5&lt;/H3&gt;
&lt;P data-line="45"&gt;This release bumps the bundled Rust core dependency from 0.1.4 to 0.1.5, bringing in fixes for bulk load connection timeout scenarios.&lt;/P&gt;
&lt;H2 data-line="49"&gt;Additional quality updates&lt;/H2&gt;
&lt;H3 data-line="39"&gt;Non-ASCII VARCHAR data in Arrow fetch path&lt;/H3&gt;
&lt;P data-line="41"&gt;The Arrow fetch path now requests&amp;nbsp;SQL_CHAR&amp;nbsp;as&amp;nbsp;SQL_C_WCHAR&amp;nbsp;(UTF-16LE) instead of using the narrow character path. This ensures correct decoding independent of encoding settings, locale, or operating system, with no significant performance impact observed.&lt;/P&gt;
&lt;H3 data-line="45"&gt;Bulk Copy connection timeouts&lt;/H3&gt;
&lt;P data-line="47"&gt;Bulk copy timeout fixes from Rust core are now included by bumping bundled mssql_py_core from 0.1.4 to 0.1.5.&lt;/P&gt;
&lt;H2 data-line="53"&gt;Upgrade&lt;/H2&gt;
&lt;LI-CODE lang="bash"&gt;pip install --upgrade mssql-python&lt;/LI-CODE&gt;
&lt;P data-line="59"&gt;If you use Azure Entra ID authentication with Bulk Copy, you'll want this update.&lt;/P&gt;
&lt;H2 data-line="61"&gt;Thank you&lt;/H2&gt;
&lt;P data-line="63"&gt;Thanks to everyone who reported issues, validated fixes, and contributed code and tests.&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jun 2026 17:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/mssql-python-1-10-0-service-principal-bulk-copy-more-reliable/ba-p/4531096</guid>
      <dc:creator>DavidLevy</dc:creator>
      <dc:date>2026-06-26T17:00:00Z</dc:date>
    </item>
    <item>
      <title>Some Questions About `log_send_rate`, `log_send_queue_size`, `redo_queue_size`, and `redo_rate`.</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server/some-questions-about-log-send-rate-log-send-queue-size-redo/m-p/4531120#M6085</link>
      <description>&lt;P&gt;Hello,&amp;nbsp; I've recently been trying to monitor the latency of the Available Group.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regarding logsend latency and redo latency, I hope to monitor them using the `log_send_queue_size` / `log_send_rate` and `redo_queue_size` / `redo_rate` metrics in the `dm_hadr_database_replica_states` DMV.&lt;/P&gt;&lt;P&gt;However, in the process, I noticed that even in busy systems, `log_send_queue_size` and `log_send_rate` are often 0, whereas in idle systems, `redo_rate` is never 0.&lt;/P&gt;&lt;P&gt;&amp;nbsp;Could you please explain the specific definitions of `log_send_rate` and `redo_rate`? Why is `redo_rate` not zero when no data synchronization is taking place? In a system where data synchronization is occurring, `log_send_rate` and `log_send_queue_size` may be zero. My understanding is that log sends occur very quickly, while the monitoring granularity is not fine-grained enough—is that correct?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope someone from the community comment on this.&lt;/P&gt;</description>
      <pubDate>Fri, 26 Jun 2026 04:00:46 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server/some-questions-about-log-send-rate-log-send-queue-size-redo/m-p/4531120#M6085</guid>
      <dc:creator>hfjia</dc:creator>
      <dc:date>2026-06-26T04:00:46Z</dc:date>
    </item>
    <item>
      <title>Announcing Microsoft.Data.SqlClient 7.0.2 and 6.1.6</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/announcing-microsoft-data-sqlclient-7-0-2-and-6-1-6/ba-p/4531075</link>
      <description>&lt;P data-line="2"&gt;We are pleased to announce the release of &lt;STRONG&gt;Microsoft.Data.SqlClient 7.0.2&lt;/STRONG&gt;&amp;nbsp;and&amp;nbsp;&lt;STRONG&gt;6.1.6&lt;/STRONG&gt;, stable servicing updates now available on NuGet.&lt;/P&gt;
&lt;P data-line="4"&gt;Both releases include:&lt;/P&gt;
&lt;UL data-line="6"&gt;
&lt;LI data-line="6"&gt;WAM broker support for supported Microsoft Entra ID authentication modes on Windows&lt;/LI&gt;
&lt;LI data-line="7"&gt;TDS parsing security hardening with strict data-length bounds checks&lt;/LI&gt;
&lt;LI data-line="8"&gt;Key bug fixes, including a&amp;nbsp;SqlDataReader&amp;nbsp;null-reference path and an Always Encrypted signature verification cache fix&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="10"&gt;Install or update from NuGet:&lt;/P&gt;
&lt;P&gt;dotnet add package Microsoft.Data.SqlClient --version 7.0.2 or dotnet add package Microsoft.Data.SqlClient --version 6.1.6&lt;/P&gt;
&lt;P data-line="20"&gt;Full release notes:&lt;/P&gt;
&lt;UL data-line="22"&gt;
&lt;LI data-line="22"&gt;7.0.2:&amp;nbsp;&lt;A href="https://github.com/dotnet/SqlClient/releases/tag/v7.0.2" target="_blank" rel="noopener" data-href="https://github.com/dotnet/SqlClient/releases/tag/v7.0.2"&gt;https://github.com/dotnet/SqlClient/releases/tag/v7.0.2&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="23"&gt;6.1.6:&amp;nbsp;&lt;A href="https://github.com/dotnet/SqlClient/releases/tag/v6.1.6" target="_blank" rel="noopener" data-href="https://github.com/dotnet/SqlClient/releases/tag/v6.1.6"&gt;https://github.com/dotnet/SqlClient/releases/tag/v6.1.6&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-line="25"&gt;What's in these releases&lt;/H2&gt;
&lt;H3 data-line="27"&gt;WAM broker support for supported Entra ID authentication modes (Windows)&lt;/H3&gt;
&lt;P data-line="29"&gt;Both servicing releases add support for the Web Account Manager (WAM) broker in supported Entra ID authentication flows on Windows. This enables OS-brokered token handling, better single sign-on behavior with the signed-in Windows account, and improved support for Conditional Access and Windows Hello scenarios.&lt;/P&gt;
&lt;P data-line="31"&gt;For application code, this is exposed through&amp;nbsp;ActiveDirectoryAuthenticationProviderOptions, including the&amp;nbsp;UseWamBroker&amp;nbsp;property.&lt;/P&gt;
&lt;H3 data-line="33"&gt;Hardened TDS token parsing&lt;/H3&gt;
&lt;P data-line="35"&gt;The TDS parser now validates declared token data lengths against the available input buffer before reading. This improves resilience against malformed or hostile protocol payloads and helps prevent out-of-bounds token parsing behavior.&lt;/P&gt;
&lt;P data-line="37"&gt;For well-formed SQL Server responses, behavior is unchanged.&lt;/P&gt;
&lt;H3 data-line="39"&gt;SqlDataReader null-reference fix&lt;/H3&gt;
&lt;P data-line="41"&gt;These releases include a fix for a&amp;nbsp;SqlDataReader&amp;nbsp;null-reference path in buffer-based reads. Calls that previously could fail with&amp;nbsp;NullReferenceException&amp;nbsp;now correctly surface argument validation errors.&lt;/P&gt;
&lt;H3 data-line="43"&gt;Always Encrypted signature-cache fix&lt;/H3&gt;
&lt;P data-line="45"&gt;The Always Encrypted column master key signature verification cache logic was corrected so cached verification results are read and applied using the correct key and value. This prevents stale or mismatched cache outcomes from being treated as valid signature verification results.&lt;/P&gt;
&lt;H2 data-line="47"&gt;Additional note for 7.0.2 users&lt;/H2&gt;
&lt;P data-line="49"&gt;Starting with version 7.0.2, Microsoft.Data.SqlClient and companion extension packages are version-aligned to 7.0.2. If your application references extension packages (for example Microsoft.Data.SqlClient.Extensions.Azure), upgrade them to the same version for compatibility.&lt;/P&gt;
&lt;H2 data-line="51"&gt;Getting started&lt;/H2&gt;
&lt;P data-line="53"&gt;If you are new to Microsoft.Data.SqlClient, check out the introduction documentation:&amp;nbsp;&lt;A href="https://learn.microsoft.com/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace"&gt;https://learn.microsoft.com/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace&lt;/A&gt;&lt;/P&gt;
&lt;P data-line="53"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="56"&gt;For users of&amp;nbsp;System.Data.SqlClient, see the porting cheat sheet:&amp;nbsp;&lt;A href="https://github.com/dotnet/SqlClient/blob/main/porting-cheat-sheet.md" target="_blank" rel="noopener" data-href="https://github.com/dotnet/SqlClient/blob/main/porting-cheat-sheet.md"&gt;https://github.com/dotnet/SqlClient/blob/main/porting-cheat-sheet.md&lt;/A&gt;&lt;/P&gt;
&lt;P data-line="56"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-line="59"&gt;If you encounter any issues, please report them on GitHub:&amp;nbsp;&lt;A href="https://github.com/dotnet/SqlClient/issues" target="_blank" rel="noopener" data-href="https://github.com/dotnet/SqlClient/issues"&gt;https://github.com/dotnet/SqlClient/issues&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 25 Jun 2026 20:23:58 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/announcing-microsoft-data-sqlclient-7-0-2-and-6-1-6/ba-p/4531075</guid>
      <dc:creator>DavidLevy</dc:creator>
      <dc:date>2026-06-25T20:23:58Z</dc:date>
    </item>
    <item>
      <title>Microsoft Django backend for SQL Server - mssql-django 1.7.3 is now available</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/microsoft-django-backend-for-sql-server-mssql-django-1-7-3-is/ba-p/4530726</link>
      <description>&lt;P data-line="2"&gt;We are happy to announce the release of &lt;STRONG&gt;mssql-django 1.7.3&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P data-line="4"&gt;This release improves SQL Server connection compatibility for modern authentication scenarios and fixes a subclassing edge case in backend server-property caching.&lt;/P&gt;
&lt;H2 data-line="6"&gt;Highlights&lt;/H2&gt;
&lt;H3 data-line="8"&gt;1) Authentication parsing and connection string handling improvements&lt;/H3&gt;
&lt;P data-line="10"&gt;We fixed how extra_params authentication settings are interpreted and now parse ODBC-style key/value segments more robustly.&lt;/P&gt;
&lt;P data-line="12"&gt;What changed:&lt;/P&gt;
&lt;UL data-line="14"&gt;
&lt;LI data-line="14"&gt;Authentication mode is parsed from&amp;nbsp;extra_params&amp;nbsp;using a spec-aligned parser.&lt;/LI&gt;
&lt;LI data-line="15"&gt;Trusted_Connection&amp;nbsp;and&amp;nbsp;SSPI&amp;nbsp;injection now respects explicit&amp;nbsp;Authentication=&amp;nbsp;modes.&lt;/LI&gt;
&lt;LI data-line="16"&gt;Password injection behavior is driven by authentication mode, so password-based modes still receive&amp;nbsp;PWD&amp;nbsp;correctly.&lt;/LI&gt;
&lt;LI data-line="17"&gt;Parser behavior is hardened for cases like braced values, embedded semicolons, escaped braces, whitespace, and empty values.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="19"&gt;Why it matters:&lt;/P&gt;
&lt;UL data-line="21"&gt;
&lt;LI data-line="21"&gt;Prevents invalid combinations such as appending&amp;nbsp;Trusted_Connection=yes&amp;nbsp;when an explicit authentication mode is provided.&lt;/LI&gt;
&lt;LI data-line="22"&gt;Avoids ODBC driver failures (including&amp;nbsp;FA001) in authentication flows such as&amp;nbsp;ActiveDirectoryIntegrated.&lt;/LI&gt;
&lt;LI data-line="23"&gt;Improves predictability for advanced connection-string configurations.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3 data-line="27"&gt;2) Server-property cache fix for DatabaseWrapper subclasses&lt;/H3&gt;
&lt;P data-line="29"&gt;We fixed a KeyError when subclassing DatabaseWrapper and accessing server-property cached values.&lt;/P&gt;
&lt;P data-line="31"&gt;What changed:&lt;/P&gt;
&lt;UL data-line="33"&gt;
&lt;LI data-line="33"&gt;Replaced mutable default-argument cache patterns with explicit class-level cache dictionaries.&lt;/LI&gt;
&lt;LI data-line="34"&gt;Added regression coverage for subclass access paths.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="36"&gt;Why it matters:&lt;/P&gt;
&lt;UL data-line="38"&gt;
&lt;LI data-line="38"&gt;Custom backend wrapper subclasses now behave correctly when reading cached server properties.&lt;/LI&gt;
&lt;LI data-line="39"&gt;Prevents runtime failures in extensibility scenarios.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-line="43"&gt;Upgrade&lt;/H2&gt;
&lt;LI-CODE lang="bash"&gt;pip install --upgrade mssql-django==1.7.3&lt;/LI-CODE&gt;
&lt;P data-line="49"&gt;If you are building an application that uses Entra authentication, you'll want this as your minimum version.&lt;/P&gt;
&lt;H2 data-line="51"&gt;Compatibility&lt;/H2&gt;
&lt;P data-line="53"&gt;1.7.3&amp;nbsp;continues the same compatibility range introduced in&amp;nbsp;1.7.x:&lt;/P&gt;
&lt;UL data-line="55"&gt;
&lt;LI data-line="55"&gt;Django 3.2 through 6.0&lt;/LI&gt;
&lt;LI data-line="56"&gt;Python 3.8 through 3.14&lt;/LI&gt;
&lt;LI data-line="57"&gt;All supported versions of Microsoft SQL&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-line="59"&gt;Thank You&lt;/H2&gt;
&lt;P data-line="61"&gt;Thank you to everyone who reported issues, validated fixes, and contributed improvements.&lt;/P&gt;
&lt;P data-line="63"&gt;As always, please open an issue if you hit regressions or have connection/authentication scenarios you want us to look into.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jun 2026 20:04:55 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/microsoft-django-backend-for-sql-server-mssql-django-1-7-3-is/ba-p/4530726</guid>
      <dc:creator>DavidLevy</dc:creator>
      <dc:date>2026-06-24T20:04:55Z</dc:date>
    </item>
    <item>
      <title>SQL Server 2016 Extended Security Updates: Stay Protected While You Modernize</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/sql-server-2016-extended-security-updates-stay-protected-while/ba-p/4529478</link>
      <description>&lt;P&gt;SQL Server 2016 reaches the end of extended support on &lt;STRONG&gt;July 14, 2026&lt;/STRONG&gt;. After that date, instances that remain on SQL Server 2016 no longer receive regular security updates unless they are covered through &lt;A class="lia-external-url" href="https://learn.microsoft.com/sql/sql-server/end-of-support/sql-server-extended-security-updates" target="_blank" rel="noopener"&gt;Extended Security Updates (ESUs)&lt;/A&gt;&lt;STRONG&gt;)&lt;/STRONG&gt;. ESUs provide a time-bound security bridge for customers who need to maintain existing workloads while they upgrade to a supported SQL Server release or modernize to Azure SQL.&lt;/P&gt;
&lt;P&gt;SQL Server 2016 Extended Security Updates can be managed across multiple deployment models, including &lt;STRONG&gt;SQL Server enabled by Azure Arc&lt;/STRONG&gt; for on-premises and other clouds, and &lt;STRONG&gt;SQL Server on Azure Virtual Machines&lt;/STRONG&gt;. This provides a consistent protection path while customers assess modernization options and operational readiness.&lt;/P&gt;
&lt;P&gt;Today, we are making the Extended Security Updates subscription experience available in Azure so customers can enroll ahead of SQL Server 2016 reaching end of support, and be ready to receive Extended Security Updates when they are released.&lt;/P&gt;
&lt;H2&gt;Why this matters now&lt;/H2&gt;
&lt;P&gt;SQL Server follows a fixed lifecycle policy with mainstream support followed by extended support. Once SQL Server 2016 exits extended support, Extended Security Updates become the only for continued security coverage on that version. Extended Security Updates are intended as a temporary option for risk reduction, not as a long-term alternative to upgrade or modernization.&lt;/P&gt;
&lt;P&gt;For many production environments, the constraint is not awareness of the deadline but the complexity of the upgrade path. Application dependencies, validation requirements, change windows, and compliance controls sometimes make immediate migration impractical. Extended Security Updates help teams maintain security coverage during that transition period while they sequence remediation, testing, and platform changes.&lt;/P&gt;
&lt;H2&gt;How SQL Server 2016 Extended Security Updates work&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;Support window:&lt;/STRONG&gt; SQL Server 2016 exits extended support on &lt;STRONG&gt;July 14, 2026&lt;/STRONG&gt;. Extended Security Updates are available for up to three additional years, with coverage periods defined by the SQL Server 2016 lifecycle schedule through &lt;STRONG&gt;July 17, 2029&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H3&gt;Supported scope and update model&lt;/H3&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Eligible versions:&lt;/STRONG&gt; SQL Server 2016. Extended Security Updates are also available for SQL Server 2014 until July 12, 2027.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Eligible editions:&lt;/STRONG&gt; Standard and Enterprise&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Update content:&lt;/STRONG&gt; Extended Security Updates deliver critical security updates when applicable. They do not include new features, non-security bug fixes, non-critical security updates, or design changes.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Operational note:&lt;/STRONG&gt; SQL Server ESUs are not published on a fixed monthly cadence. They are released when qualifying vulnerabilities require a release.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;For Azure Arc-connected environments, Extended Security Updates subscriptions can be aligned to the deployment model, including virtual cores for VM-based deployments and physical cores for host-based scenarios. This gives organizations flexibility to match ESU coverage to how SQL Server is deployed and managed.&lt;/P&gt;
&lt;H2&gt;How to acquire Extended Security Updates coverage&lt;/H2&gt;
&lt;P&gt;Customers can acquire SQL Server ESU coverage in different ways depending on where SQL Server is running and how they prefer to purchase. For on-premises, edge, and other cloud environments, &lt;STRONG&gt;SQL Server enabled by Azure Arc&lt;/STRONG&gt; provides the control plane to onboard instances, manage eligibility, and apply ESU subscription settings. For workloads already running on &lt;STRONG&gt;Azure Virtual Machines&lt;/STRONG&gt;, customers can subscribe to ESU coverage through Azure-based controls. Customers can purchase that coverage as &lt;STRONG&gt;pay-as-you-go through Azure&lt;/STRONG&gt; or &lt;STRONG&gt;through Volume Licensing on an annual basis for eligible licenses with active Software Assurance&lt;/STRONG&gt;. When customers choose Volume Licensing, Azure Arc registration is still required to activate access to ESUs.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;SQL Server enabled by Azure Arc:&lt;/STRONG&gt; Use Azure Arc to onboard eligible SQL Server instances outside Azure, &lt;A class="lia-external-url" href="https://learn.microsoft.com/sql/sql-server/azure-arc/extended-security-updates" target="_blank" rel="noopener"&gt;manage Extended Security Updates subscription settings&lt;/A&gt;, and support both connected and qualifying disconnected scenarios.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;SQL Server on Azure Virtual Machines:&lt;/STRONG&gt; Use Azure-based controls to &lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/azure-sql/virtual-machines/windows/extended-security-updates-sql-vm" target="_blank" rel="noopener"&gt;subscribe to Extended Security Updates coverage for workloads running on Azure Virtual Machines&lt;/A&gt;. For SQL Server 2016, this now requires a paid ESU subscription rather than the previous no-additional-cost experience.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;STRONG&gt;Supported regions:&lt;/STRONG&gt; Subscribing to Extended Security Updates for SQL Server on Azure VMs is only available in the supported regions &lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/extended-security-updates-sql-vm?view=azuresql&amp;amp;branch=pr-en-us-36881&amp;amp;tabs=americas#supported-azure-regions" target="_blank" rel="noopener"&gt;listed&lt;/A&gt;. To subscribe to ESUs in an unsupported region, contact Microsoft Support to determine the appropriate ESU acquisition path.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Volume Licensing:&lt;/STRONG&gt; If you cannot subscribe to Extended Security Updates via Azure Arc, you can purchase through the Volume Licensing channel on an annual basis for eligible licenses with active Software Assurance. Talk to your Microsoft seller for more information. &lt;A class="lia-external-url" href="https://learn.microsoft.com/sql/sql-server/end-of-support/extended-security-updates-disconnected-instances" target="_blank" rel="noopener"&gt;Azure Arc registration&lt;/A&gt; is still required to activate access to ESUs.&lt;/LI&gt;
&lt;LI&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/azure/azure-sql/migration-guides" target="_blank" rel="noopener"&gt;Migrate to Azure SQL&lt;/A&gt;&lt;STRONG&gt;:&lt;/STRONG&gt; Customers that are ready to modernize further can move to Azure SQL Database or Azure SQL Managed Instance, which removes Extended Security Updates dependency by moving to fully supported, cloud-managed SQL services.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;The following diagram summarizes how customers can obtain SQL Server 2016 Extended Security Updates coverage through Azure Arc and Azure Virtual Machines.&lt;/P&gt;
&lt;img /&gt;
&lt;H2&gt;What to do next&lt;/H2&gt;
&lt;P&gt;Organizations still running SQL Server 2016 should use the remaining support window to assess estate readiness, determine the right Extended Security Updates subscription model, and define the target modernization path for each workload. For some environments, that means upgrading in place to a supported SQL Server version. For others, it means migrating and upgrading to Azure Virtual Machines or Azure SQL to simplify long-term operations. The important step is to make the transition plan executable before support ends.&lt;/P&gt;
&lt;H2&gt;Learn more&lt;/H2&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/sql/sql-server/end-of-support/sql-server-end-of-support-overview" target="_blank" rel="noopener"&gt;SQL Server end of support options&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/sql/sql-server/azure-arc/extended-security-updates" target="_blank" rel="noopener"&gt;SQL Server Extended Security Updates enabled by Azure Arc&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/sql/sql-server/azure-arc/overview" target="_blank" rel="noopener"&gt;SQL Server enabled by Azure Arc&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/extended-security-updates-sql-vm" target="_blank" rel="noopener" data-linktype="absolute-path"&gt;Extend support for SQL Server with Azure VM&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="lia-external-url" href="https://learn.microsoft.com/en-us/azure/virtual-machines/windows/sql/virtual-machines-windows-sql-server-iaas-overview" target="_blank" rel="noopener" data-linktype="absolute-path"&gt;SQL Server on Azure VM overview&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://learn.microsoft.com/azure/azure-sql/migration-guides" target="_blank" rel="noopener"&gt;Migrate to Azure SQL&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Jun 2026 12:41:38 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/sql-server-2016-extended-security-updates-stay-protected-while/ba-p/4529478</guid>
      <dc:creator>Venkata_Raj_Pochiraju</dc:creator>
      <dc:date>2026-06-23T12:41:38Z</dc:date>
    </item>
    <item>
      <title>SQL 2025 Fabric Mirroring</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server/sql-2025-fabric-mirroring/m-p/4530164#M6084</link>
      <description>&lt;P&gt;We have setup fabric mirroring in SQL 2025 on top of a replicated subscriber using azure arc, this is just for a proof of concept, the mirroring seems to work but there is a microsoft document&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;https://learn.microsoft.com/en-us/fabric/mirroring/sql-server-limitations#database-level-limitations&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;advising CDC and replication is not supported in 2025 for fabric mirroring, We observed with CDC enabled it did not allow fabric mirroring to be configured, but with replication it still allowed, we noticed change feed doesnt seem to work as there was a latecy of atleast 30 secs to mirror data to fabric. Is this something to do with replication being enabled we dont know, we still havent tested a plain database (without replication and/or cdc enabled) Following details are shared to our BI team about the current situation in an email&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Current Observations&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When executing the following command on the source database:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;EXEC sp_help_change_feed;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the engine returns:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Change Feed or Fabric Link is not enabled on database 'ourdb'.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Additionally:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;SELECT [name], is_data_lake_replication_enabled&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;FROM sys.databases&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;WHERE [name] = 'ourdb';&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;returns: 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Based on these results, the SQL Server 2025 Change Feed engine does not appear to be enabled for the database under test.&lt;/P&gt;&lt;P&gt;Mirroring Behavior&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Despite the Change Feed status indicating disabled, data continues to be synchronized successfully to Fabric.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This suggests that Fabric Mirroring is currently obtaining changes through an alternative mechanism rather than through the native SQL Server 2025 Change Feed feature. We also observed an approximate latency of 30 seconds, even for single-row insert or update operations.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Further clarification from Microsoft may be required to determine the exact mechanism being used and whether this behavior is expected when SQL Server Replication is present.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Production Considerations&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;While the functionality appears to work in a test environment, several questions remain regarding production suitability:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If the native SQL Server 2025 Change Feed engine cannot be enabled alongside replication, it is unclear how Fabric guarantees change retention and recovery during periods of high transaction volume.&lt;/P&gt;&lt;P&gt;Additional validation is required to determine whether transaction log truncation, checkpoints, or backup activity could affect Fabric's ability to capture all changes consistently.&lt;/P&gt;&lt;P&gt;Fabric Mirroring may introduce additional background workload against the source database, resulting in increased read I/O and resource consumption on a server already processing replication activity.&lt;/P&gt;&lt;P&gt;Conclusion&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;At present, data is successfully reaching Fabric; however, the native SQL Server 2025 Change Feed functionality does not appear to be active.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The key question requiring clarification is whether SQL Server Replication prevents or alters Change Feed operation, and whether the current mirroring behavior is a fully supported production configuration.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Until this is confirmed, we should treat the current implementation as a successful proof of concept rather than confirmation of a supported production architecture.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Next Step: test a plain database with some rapid data insertion mechanism to see if change feed kicks in to push data to fabric at near real time speed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;--Can someone from the community comment on this.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Jun 2026 12:41:11 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server/sql-2025-fabric-mirroring/m-p/4530164#M6084</guid>
      <dc:creator>baloocc1</dc:creator>
      <dc:date>2026-06-23T12:41:11Z</dc:date>
    </item>
    <item>
      <title>Feature Proposal: Ability to Exclude a column/subset of Columns in Select.</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server/feature-proposal-ability-to-exclude-a-column-subset-of-columns/m-p/4529382#M6077</link>
      <description>&lt;H2&gt;Summary&lt;/H2&gt;&lt;P&gt;I would like to propose a new T-SQL feature that allows developers to select all columns from a table while explicitly excluding a small subset of columns.&lt;/P&gt;&lt;P&gt;Currently, when a table contains many columns and only one or two need to be omitted, developers are forced to mention every remaining column manually in the "Select" SQL. This leads to verbose queries, reduced maintainability, and a higher chance of mistakes when the schema evolves.&lt;/P&gt;&lt;H2&gt;Motivation&lt;/H2&gt;&lt;P&gt;Consider a table with 20 or more columns.&lt;/P&gt;&lt;P&gt;Current approach,&lt;/P&gt;&lt;P&gt;SELECT EmployeeId, FirstName, LastName, Department, Designation, Email, PhoneNumber, DateOfBirth, Address, City, State, Country, PostalCode, ManagerId, JoiningDate, LastModifiedDate, Status, IsActive, CreatedDate FROM Employees;&lt;/P&gt;&lt;P&gt;If the intention is simply to exclude a single sensitive column such as Salary, the query becomes unnecessarily long.&lt;/P&gt;&lt;P&gt;A more concise alternative could be:&lt;/P&gt;&lt;P&gt;SELECT * FROM Employees EXCLUDE (Salary);&lt;/P&gt;&lt;P&gt;The engine would expand * internally and remove the specified columns before execution.&lt;/P&gt;&lt;H2&gt;Benefits&lt;/H2&gt;&lt;P&gt;1. Reduces boilerplate code.&lt;/P&gt;&lt;P&gt;2. Improves readability for wide tables.&lt;/P&gt;&lt;P&gt;3. Makes queries easier to maintain as schemas evolve.&lt;/P&gt;&lt;P&gt;4. Reduces the likelihood of accidentally omitting newly added columns.&lt;/P&gt;&lt;P&gt;5. Makes it simpler to exclude sensitive or internal-use columns from result sets.&lt;/P&gt;&lt;H2&gt;Expected Behavior&lt;/H2&gt;&lt;H3&gt;Single column exclusion&lt;/H3&gt;&lt;P&gt;SELECT * FROM Employees EXCLUDE (Salary);&lt;/P&gt;&lt;P&gt;Returns all columns except Salary.&lt;/P&gt;&lt;H3&gt;Multiple column exclusion&lt;/H3&gt;&lt;P&gt;SELECT * FROM Employees EXCLUDE (Salary, PasswordHash);&lt;/P&gt;&lt;P&gt;Returns all columns except Salary and PasswordHash.&lt;/P&gt;&lt;H2&gt;Suggested Validation Rules&lt;/H2&gt;&lt;P&gt;1. Every excluded column must exist in the projected result set.&lt;/P&gt;&lt;P&gt;If an excluded column does not exist, compilation should fail with an appropriate error.&lt;/P&gt;&lt;P&gt;2. Duplicate column names in the exclusion list should either:&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;be ignored, or&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;produce a validation error.&lt;/P&gt;&lt;P&gt;3. If the exclusion list removes every projected column, the statement should fail.&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;SELECT * FROM Employees EXCLUDE (Employee, Name, Salary);&lt;/P&gt;&lt;P&gt;If these are the only columns in the table, an error could be raised such as:&lt;/P&gt;&lt;P&gt;The EXCLUDE clause cannot eliminate all columns from the SELECT list.&lt;/P&gt;&lt;P&gt;Returning a zero-column result set would likely be confusing and less useful.&lt;/P&gt;&lt;H2&gt;Additional Considerations&lt;/H2&gt;&lt;P&gt;This syntax could also be valuable when selecting from joins, views, or derived tables, where developers frequently want "everything except a few fields."&lt;/P&gt;&lt;H2&gt;Closing Thoughts&lt;/H2&gt;&lt;P&gt;I believe this would be a practical quality-of-life enhancement for T-SQL that addresses a common developer pain point while remaining simple to understand and implement. It would reduce repetitive code and improve maintainability without affecting existing queries.&lt;/P&gt;</description>
      <pubDate>Fri, 19 Jun 2026 03:09:41 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server/feature-proposal-ability-to-exclude-a-column-subset-of-columns/m-p/4529382#M6077</guid>
      <dc:creator>venkata-subramanian</dc:creator>
      <dc:date>2026-06-19T03:09:41Z</dc:date>
    </item>
    <item>
      <title>SSRS reports not working</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server/ssrs-reports-not-working/m-p/4529359#M6076</link>
      <description>&lt;P&gt;Hi Microsoft team,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;We are looking for tech support on an issue with SSRS reports that are used in one of our applications.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The details of the issue are as foll:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When Trying to access an SSRS ReportServer instance (either through the SOAP Service, or directly from the browser) does not work. There are&amp;nbsp; Errors observed in the log files as well as the user interface .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The error message is&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;An error occurred within the report server database.&amp;nbsp; This may be due to a connection failure, timeout or low disk condition within the database.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The user interface fails to load Report as a result&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Attached are the SSRS log files from the last month from one of the servers.&lt;/P&gt;&lt;P&gt;The last time reports were successfully accessed was on Friday, June 15th. Starting this Monday all functionality stopped working.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This environment has 4 SSRS servers under an High Availability AGL.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;RSManagement log files indicate that the ReportServer schemas may be in an inconsistent state&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;|FATAL|8|Database upgrade failed!!&amp;nbsp; The database may now be in an inconsistent state.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Further research indicates that this may be corrected by the following procedure…&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Stop SSRS services&lt;/P&gt;&lt;P&gt;Backup and delete ReportServer and ReportServerTempDB databases&lt;/P&gt;&lt;P&gt;Start the SSRS services&lt;/P&gt;&lt;P&gt;Use the wizard to create a new ReportServer set of databases&lt;/P&gt;&lt;P&gt;Stop the SSRS services&lt;/P&gt;&lt;P&gt;Delete the new (empty ReportServer) database&lt;/P&gt;&lt;P&gt;Restore the backup of the ReportServer (from step 2 - do not&amp;nbsp;restore the temp database)&lt;/P&gt;&lt;P&gt;Fix schema of ReportServer.dbo.Catalog.PropertyField and ReportServer.dbo.Segment.Content (change columns from ntext to nvarchar(max))&lt;/P&gt;&lt;P&gt;Start the SSRS services (Monitor the RSManagement log file)&lt;/P&gt;&lt;P&gt;Verify&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Backout if fail: (Stop Services, Restore the databases, Restart Services)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This may also include refreshing of encryption keys and removing servers from the AGL prior to this procedure&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can you please help identify what could be a possible root cause for this issue, confirm if the steps listed below present a plausible solution, and advise on any additional triaging steps or corrective procedures?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in Advance&lt;/P&gt;</description>
      <pubDate>Thu, 18 Jun 2026 22:09:27 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server/ssrs-reports-not-working/m-p/4529359#M6076</guid>
      <dc:creator>NishantApturkar</dc:creator>
      <dc:date>2026-06-18T22:09:27Z</dc:date>
    </item>
    <item>
      <title>Cumulative Update #6 for SQL Server 2025 RTM</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/cumulative-update-6-for-sql-server-2025-rtm/ba-p/4528963</link>
      <description>&lt;P&gt;The 6th cumulative update release for SQL Server 2025 RTM is now available for download at the Microsoft Downloads site. Please note that registration is no longer required to download Cumulative updates. &lt;BR /&gt;To learn more about the release or servicing model, please visit:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;CU6 KB Article: &lt;A href="https://learn.microsoft.com/troubleshoot/sql/releases/sqlserver-2025/cumulativeupdate6" target="_blank"&gt;https://learn.microsoft.com/troubleshoot/sql/releases/sqlserver-2025/cumulativeupdate6&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Starting with SQL Server 2017, we adopted a new modern servicing model. Please refer to our blog for more details on &lt;A href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fsql-server-blog%2Fannouncing-the-modern-servicing-model-for-sql-server%2Fba-p%2F385594&amp;amp;data=05%7C02%7Cskandi%40microsoft.com%7C686f3489982f409c873608deccbe0aab%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C639173313747301658%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&amp;amp;sdata=Xbmzwnic9%2B1UGI3%2FUs3ZxgrS6IcMiFGTiqL9MGklBq0%3D&amp;amp;reserved=0" target="_blank"&gt;Modern Servicing Model&lt;/A&gt; for SQL Server&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Microsoft® SQL Server® 2025 RTM Latest Cumulative Update: &lt;A href="https://www.microsoft.com/download/details.aspx?familyid=69e0b8fc-1c50-41bd-a576-b9c66b2f302a" target="_blank"&gt;https://www.microsoft.com/download/details.aspx?familyid=69e0b8fc-1c50-41bd-a576-b9c66b2f302a&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Update Center for Microsoft SQL Server: &lt;A href="https://learn.microsoft.com/en-us/troubleshoot/sql/releases/download-and-install-latest-updates" target="_blank"&gt;https://learn.microsoft.com/en-us/troubleshoot/sql/releases/download-and-install-latest-updates&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 18 Jun 2026 00:43:37 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/cumulative-update-6-for-sql-server-2025-rtm/ba-p/4528963</guid>
      <dc:creator>SrinivasSQL</dc:creator>
      <dc:date>2026-06-18T00:43:37Z</dc:date>
    </item>
    <item>
      <title>SQL Server 2022 Database Engine Crash During Startup on Intel Core Ultra 5 / Windows 11 25H2</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server/sql-server-2022-database-engine-crash-during-startup-on-intel/m-p/4528373#M6072</link>
      <description>&lt;P&gt;SQL Server Database Engine crashes during startup on HP OmniBook X Flip 14-fm0xxx (Intel Core Ultra 5 226V, Windows 11 25H2 Build 26200.8655). Reproduced on SQL Server 2019 RTM, SQL Server 2022 RTM, and SQL Server 2022 CU25 (16.0.4255.1). Installation completes successfully, but MSSQLSERVER fails to start with Error 1067 and "Wait on the Database Engine recovery handle failed." Event Viewer shows sqlservr.exe crashing in ntdll.dll (0xc0000005). Crash occurs after master database and CLR initialization.&lt;/P&gt;</description>
      <pubDate>Mon, 15 Jun 2026 18:36:02 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server/sql-server-2022-database-engine-crash-during-startup-on-intel/m-p/4528373#M6072</guid>
      <dc:creator>Marvel05</dc:creator>
      <dc:date>2026-06-15T18:36:02Z</dc:date>
    </item>
    <item>
      <title>mssql-python 1.9.0: Row-friendly Bulk Copy, smarter NULL parameters, and a more portable wheel</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/mssql-python-1-9-0-row-friendly-bulk-copy-smarter-null/ba-p/4527924</link>
      <description>&lt;P data-line="2"&gt;We just shipped mssql-python 1.9.0, the official Microsoft SQL driver for Python. This release focuses on day-to-day ergonomics for data loading, a long-standing correctness gap around NULL parameter binding, and a build change that makes the published wheels work on clean macOS and Linux machines.&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;pip install --upgrade mssql-python&lt;/LI-CODE&gt;
&lt;H2 data-line="6"&gt;Highlights&lt;/H2&gt;
&lt;H3 data-line="8"&gt;Bulk Copy now accepts Row objects (and lists)&lt;/H3&gt;
&lt;P data-line="10"&gt;Bulk Copy previously required tuples. In 1.9.0 you can hand it&amp;nbsp;Row&amp;nbsp;objects straight from a&amp;nbsp;SELECT, or plain lists, and the driver converts each row to a tuple internally before passing data to the Rust backend.&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;rows = source_cursor.execute(
    "SELECT id, display_name, created_at FROM users"
).fetchall()

target_cursor.bulkcopy("staging.users", rows)&lt;/LI-CODE&gt;
&lt;P data-line="20"&gt;The common "fetch from one table, bulk-insert into another" pattern just works, with no manual row reshaping and no type errors on the boundary.&lt;/P&gt;
&lt;H3 data-line="22"&gt;NULL parameters now resolve to the right SQL type&lt;/H3&gt;
&lt;P data-line="24"&gt;When you bound&amp;nbsp;None&amp;nbsp;to a parameter, the driver used to fall back to&amp;nbsp;SQL_VARCHAR. That was fine for character columns and quietly wrong for everything else, especially&amp;nbsp;VARBINARY&amp;nbsp;and all-NULL columns where the server had no other type signal to lean on.&lt;/P&gt;
&lt;P data-line="26"&gt;1.9.0 adds a thread-safe per-statement cache for&amp;nbsp;SQLDescribeParam&amp;nbsp;results, so NULL parameters resolve to the parameter's actual declared type. The cache is invalidated when a new statement is prepared, which also cuts redundant round-trips to the server during repeated executions of the same prepared statement.&lt;/P&gt;
&lt;H3 data-line="28"&gt;simdutf is now statically linked into the extension&lt;/H3&gt;
&lt;P data-line="30"&gt;The published wheels (especially the macOS universal2 wheel) previously dynamically linked simdutf against a path that only existed on the CI build machine. On a clean install,&amp;nbsp;import mssql_python&amp;nbsp;could fail with missing-symbol or&amp;nbsp;dlopen&amp;nbsp;errors.&lt;/P&gt;
&lt;P data-line="32"&gt;The build no longer calls&amp;nbsp;find_package(simdutf).&amp;nbsp;FetchContent&amp;nbsp;is used unconditionally, simdutf is built as a static library, and its symbols are embedded directly in the extension. There is nothing for end users to do; reinstall the wheel and the import works on a clean machine. Thanks to&amp;nbsp;&lt;A href="https://github.com/edgarrmondragon" target="_blank" rel="noopener" data-href="https://github.com/edgarrmondragon"&gt;@edgarrmondragon&lt;/A&gt;&amp;nbsp;for the contribution.&lt;/P&gt;
&lt;H2 data-line="34"&gt;Bug fixes worth calling out&lt;/H2&gt;
&lt;UL data-line="36"&gt;
&lt;LI data-line="36"&gt;&lt;STRONG&gt;executemany&amp;nbsp;with large&amp;nbsp;Decimal&amp;nbsp;values.&lt;/STRONG&gt;&amp;nbsp;Batch inserts of&amp;nbsp;Decimal&amp;nbsp;values larger than the SQL Server&amp;nbsp;MONEY&amp;nbsp;range raised an&amp;nbsp;SQL_C_NUMERIC&amp;nbsp;type-mismatch at runtime.&amp;nbsp;executemany&amp;nbsp;now binds&amp;nbsp;DECIMAL&amp;nbsp;/&amp;nbsp;NUMERIC&amp;nbsp;parameters as&amp;nbsp;SQL_C_CHAR&amp;nbsp;and sizes the column to fit the longest string representation, so large-decimal batches (including NULLs and multi-column inserts) succeed.&lt;/LI&gt;
&lt;LI data-line="37"&gt;&lt;STRONG&gt;Exception pickle round-trips.&lt;/STRONG&gt;&amp;nbsp;ConnectionStringParseError&amp;nbsp;and the DB-API exception subclasses now implement&amp;nbsp;__reduce__, so driver exceptions survive&amp;nbsp;pickle&amp;nbsp;/&amp;nbsp;copy.deepcopy&amp;nbsp;with every attribute intact.&amp;nbsp;multiprocessing, distributed task queues, and anything that ships exceptions across process boundaries no longer lose context on the way through.&lt;/LI&gt;
&lt;LI data-line="38"&gt;&lt;STRONG&gt;nextset()&amp;nbsp;and PRINT output.&lt;/STRONG&gt;&amp;nbsp;nextset()&amp;nbsp;now collects diagnostic messages whenever SQL returns&amp;nbsp;SQL_SUCCESS_WITH_INFO. Previously,&amp;nbsp;PRINT&amp;nbsp;output from secondary result sets in multi-statement batches and stored procedures was silently dropped after the first set.&lt;/LI&gt;
&lt;LI data-line="39"&gt;&lt;STRONG&gt;executemany&amp;nbsp;data-at-execution path with&amp;nbsp;Row&amp;nbsp;objects.&lt;/STRONG&gt;&amp;nbsp;The DAE fallback used by large columns such as&amp;nbsp;varchar(max)&amp;nbsp;only recognized primitive types, so passing&amp;nbsp;Row&amp;nbsp;objects in that path failed. The fallback now converts&amp;nbsp;Row&amp;nbsp;to a tuple before mapping types.&lt;/LI&gt;
&lt;LI data-line="40"&gt;&lt;STRONG&gt;Fetch methods now type-check under&amp;nbsp;ty.&lt;/STRONG&gt;&amp;nbsp;Catalog and metadata result-set handling no longer monkey-patches&amp;nbsp;fetchone,&amp;nbsp;fetchmany, and&amp;nbsp;fetchall&amp;nbsp;as instance attributes. A cached&amp;nbsp;_column_map&amp;nbsp;is built instead, so the fetch APIs stay proper class methods and static type checkers like&amp;nbsp;ty&amp;nbsp;stop tripping on cursor fetch calls.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-line="42"&gt;Upgrading&lt;/H2&gt;
&lt;P data-line="44"&gt;For most users, pip install --upgrade mssql-python is all you need. If you had any workarounds for NULL parameter typing (manually setting inputsizes, casting in SQL, or sending sentinel values), you can drop it. If you were converting fetched rows to tuples before handing them to bulkcopy or executemany, that's no longer required either.&lt;/P&gt;
&lt;H2 data-line="46"&gt;Thanks&lt;/H2&gt;
&lt;P data-line="48"&gt;Thanks to everyone who filed issues, sent repros, and reviewed PRs in this cycle. The NULL parameter fix, the&amp;nbsp;Row&amp;nbsp;handling in Bulk Copy and&amp;nbsp;executemany, and the simdutf linking change all came directly from user-reported scenarios, and the simdutf change was a community contribution from&amp;nbsp;&lt;A href="https://github.com/edgarrmondragon" target="_blank" rel="noopener" data-href="https://github.com/edgarrmondragon"&gt;@edgarrmondragon&lt;/A&gt;.&lt;/P&gt;
&lt;P data-line="50"&gt;Full changelog and PR list:&amp;nbsp;&lt;A href="https://github.com/microsoft/mssql-python/releases/tag/v1.9.0" target="_blank" rel="noopener" data-href="https://github.com/microsoft/mssql-python/releases/tag/v1.9.0"&gt;microsoft/mssql-python releases&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Fri, 12 Jun 2026 19:50:56 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/mssql-python-1-9-0-row-friendly-bulk-copy-smarter-null/ba-p/4527924</guid>
      <dc:creator>DavidLevy</dc:creator>
      <dc:date>2026-06-12T19:50:56Z</dc:date>
    </item>
    <item>
      <title>Introducing Execution Context for GitHub Copilot in SSMS</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/introducing-execution-context-for-github-copilot-in-ssms/ba-p/4527272</link>
      <description>&lt;P&gt;The GA release of GitHub Copilot in SSMS in March included Ask mode support for the chat window, interaction with the results pane, and code completions.&amp;nbsp; &lt;A class="lia-internal-link lia-internal-url lia-internal-url-content-type-blog" href="https://techcommunity.microsoft.com/blog/sqlserver/announcing-the-release-of-ssms-22-7-0---and-many-previews/4526908" target="_blank" rel="noopener" data-lia-auto-title="Yesterday’s release of SSMS 22.7" data-lia-auto-title-active="0"&gt;Yesterday’s release of SSMS 22.7&lt;/A&gt; introduced Agent mode (preview) for the chat window, backed by skills to complete complex, multi-step tasks on your behalf.&amp;nbsp; You've been able to ask questions in natural language, get help writing T-SQL, and interact with your database right from SSMS. Now you can leverage built-in skills to get help troubleshooting performance issues, analyze missing indexes, review configuration and more, as well as create custom skills to streamline your own workflows.&lt;/P&gt;
&lt;P&gt;But...since the &lt;EM&gt;very first time &lt;/EM&gt;I presented about Copilot, I’ve been asked: can we control what Copilot is allowed to do, separately from the user's own permissions? When Copilot executes queries, it uses the same credentials as the connected user. If you connect as a sysadmin, Copilot has sysadmin-level access. &lt;A class="lia-external-url" href="https://developercommunity.visualstudio.com/t/Copilot-connection-and-credentials/11000392" target="_blank" rel="noopener"&gt;Customers asked for a way to let users take advantage of GitHub Copilot&lt;/A&gt;, &lt;A class="lia-external-url" href="https://developercommunity.visualstudio.com/t/SSMS-Copilot-Security---Restricting-acce/10933427" target="_blank" rel="noopener"&gt;but limit what queries it can execute&lt;/A&gt;.&lt;/P&gt;
&lt;H3&gt;Introducing agentExecuteAsUser in the database CONSTITUTION.md&lt;/H3&gt;
&lt;P&gt;Starting with SSMS 22.7, database owners can now configure the Copilot execution context &lt;STRONG&gt;separate &lt;/STRONG&gt;from the user's permissions.&amp;nbsp; You can specify either a database user or SQL login that Copilot uses when running queries. &amp;nbsp;This gives organizations the control they've been asking for: users keep their access, but Copilot is constrained to exactly what you allow. &amp;nbsp;The configuration is stored in the frontmatter of the database's CONSTITUTION.md file (database-level extended property), and must be configured per database.&amp;nbsp; The following format must exist in the CONSTITUTION.md:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;---&lt;BR /&gt;agentExecuteAsUser: GHCP_DatabaseUser&lt;BR /&gt;---&lt;/PRE&gt;
&lt;H3&gt;How to set it up&lt;/H3&gt;
&lt;P&gt;The following T-SQL code shows how to configure a database user, GHCP_DatabaseUser, for the General Hospital database.&lt;/P&gt;
&lt;H5&gt;Step 1: Created a dedicated database user (or SQL login) with limited permissions&lt;/H5&gt;
&lt;P&gt;Follow the principle of least privilege when creating the user or login you create for GitHub Copilot to use.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;/* Set database context */&lt;BR /&gt;&lt;BR /&gt;USE GeneralHospital;&lt;BR /&gt;&lt;BR /&gt;/* Add database user with READONLY permissions, except on dbo.CustomerPayments */&lt;BR /&gt;&lt;BR /&gt;DECLARE @GHCPUser NVARCHAR(128) = N'GHCP_DatabaseUser'; &lt;BR /&gt;&lt;BR /&gt;/* Create a contained database user (no server login required) */ &lt;BR /&gt;&lt;BR /&gt;IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = @GHCPUser) &lt;BR /&gt;&lt;BR /&gt;BEGIN &lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; DECLARE @sql NVARCHAR(MAX) = N'CREATE USER ' + QUOTENAME(@GHCPUser) + N' WITHOUT LOGIN'; &lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; EXEC sp_executesql @sql; PRINT 'Created user: ' + @GHCPUser; &lt;BR /&gt;&lt;BR /&gt;END &lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; ELSE PRINT 'User already exists: ' + @GHCPUser; &lt;BR /&gt;&lt;BR /&gt;/* Grant the user appropriate permissions (adjust to your scenario) db_datareader is a safe starting point, add additional roles or specific GRANTs as needed */ &lt;BR /&gt;&lt;BR /&gt;DECLARE @roleSql NVARCHAR(MAX) = N'ALTER ROLE db_datareader ADD MEMBER ' + QUOTENAME(@DBUser); &lt;BR /&gt;&lt;BR /&gt;EXEC sp_executesql @roleSql; &lt;BR /&gt;&lt;BR /&gt;/* Deny agent user READ access to a table with sensitive data */ &lt;BR /&gt;&lt;BR /&gt;DECLARE @denySql NVARCHAR(MAX) = N'DENY SELECT ON dbo.CustomerPayments TO ' + QUOTENAME(@DBUser); EXEC sp_executesql @denySql;&lt;/PRE&gt;
&lt;H5&gt;Step 2: Add the CONSTITUTION.md extended property for the database&lt;/H5&gt;
&lt;P&gt;Specify the user in the frontmatter of the CONSITUTION.md for the database, which is stored as a database-level extended property.&amp;nbsp; You can add or update it with T-SQL.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;/* Set database context */&lt;BR /&gt;&lt;BR /&gt;USE GeneralHospital;&lt;BR /&gt;&lt;BR /&gt;/*&lt;BR /&gt;&lt;BR /&gt;Check to see if CONSITUTION exists&lt;BR /&gt;&lt;BR /&gt;*/&lt;BR /&gt;&lt;BR /&gt;SELECT&lt;BR /&gt;&lt;BR /&gt;name,&lt;BR /&gt;&lt;BR /&gt;CAST(value AS NVARCHAR(MAX)) AS ConstitutionContent&lt;BR /&gt;&lt;BR /&gt;FROM sys.extended_properties&lt;BR /&gt;&lt;BR /&gt;WHERE class = 0 AND name = N'CONSTITUTION.md';&lt;BR /&gt;&lt;BR /&gt;/*&lt;BR /&gt;&lt;BR /&gt;Write (or update) CONSTITUTION.md with the agentExecuteAsUser frontmatter&lt;BR /&gt;&lt;BR /&gt;*/&lt;BR /&gt;&lt;BR /&gt;DECLARE @constitution NVARCHAR(4000) =&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; N'---' + CHAR(10)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;+ N'agentExecuteAsUser: ' + @DBUser + CHAR(10)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;+ N'---' + CHAR(10)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;+ N'# Database Constitution' + CHAR(10)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;+ CHAR(10)&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp;+ N'## Purpose&lt;BR /&gt;&lt;BR /&gt;This database manages operations for General Hospital including patient records, appointments, medical staff, and billing information.&lt;BR /&gt;&lt;BR /&gt;## Naming Conventions&lt;BR /&gt;&lt;BR /&gt;- **Tables**: Use abbreviated names for clarity (e.g., Pts = Patients, Docs = Doctors, Apts = Appointments)&lt;BR /&gt;&lt;BR /&gt;- **Primary Keys**: Use `[TableName]ID` format&lt;BR /&gt;&lt;BR /&gt;- **Foreign Keys**: Use descriptive names indicating the relationship&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;## Data Integrity Rules&lt;BR /&gt;&lt;BR /&gt;- All tables must have a primary key&lt;BR /&gt;&lt;BR /&gt;- Use foreign key constraints to enforce referential integrity&lt;BR /&gt;&lt;BR /&gt;- Implement appropriate indexes on foreign key columns&lt;BR /&gt;&lt;BR /&gt;- Use constraints to enforce business rules at the database level&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;## Coding Guidelines&lt;BR /&gt;&lt;BR /&gt;- Avoid SELECT * in production code&lt;BR /&gt;&lt;BR /&gt;- Use appropriate data types (avoid oversizing)';&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;IF EXISTS (SELECT 1 FROM sys.extended_properties WHERE class = 0 AND name = N'CONSTITUTION.md')&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; EXEC sp_updateextendedproperty @name = N'CONSTITUTION.md', @value = @constitution;&lt;BR /&gt;&lt;BR /&gt;ELSE&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; EXEC sp_addextendedproperty @name = N'CONSTITUTION.md', @value = @constitution;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;/* Verify the CONTITUTION.md extended property was created/updated correctly */&lt;BR /&gt;&lt;BR /&gt;PRINT 'CONSTITUTION.md written with agentExecuteAsUser: ' + @DBUser;&lt;/PRE&gt;
&lt;H5&gt;Step 3: Grant IMPERSONATE permission to users of GitHub Copilot&lt;/H5&gt;
&lt;P&gt;Any SSMS user that will use GitHub Copilot for the database must have the IMPERSONATE permissions when an &lt;STRONG&gt;agentExecuteAsUser&lt;/STRONG&gt; is specified. &amp;nbsp;Use of IMPERSONATE is intentional — it ensures that the database owner explicitly controls which users can leverage Copilot in a database with a configured execution context. If a user doesn't have IMPERSONATE permission, they can't use GitHub Copilot in SSMS against that database.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;USE GeneralHospital;&lt;BR /&gt;&lt;BR /&gt;DECLARE @DBUser NVARCHAR(128) = N'GHCP_DatabaseUser';&lt;BR /&gt;&lt;BR /&gt;DECLARE @RegularUser NVARCHAR(128) = N'PeterParker';&lt;BR /&gt;&lt;BR /&gt;/*&lt;BR /&gt;&lt;BR /&gt;Grant IMPERSONATE to the users (or to a role) of GitHub Copilot&lt;BR /&gt;&lt;BR /&gt;This must be granted to the principal that the copilot actually connects as.&lt;BR /&gt;&lt;BR /&gt;*/&lt;BR /&gt;&lt;BR /&gt;DECLARE @impersonateSql NVARCHAR(MAX) =&lt;BR /&gt;&lt;BR /&gt;N'GRANT IMPERSONATE ON USER::' + QUOTENAME(@DBUser) + N' TO ' + @RegularUser;&lt;BR /&gt;&lt;BR /&gt;EXEC sp_executesql @impersonateSql;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As a general best practice, apply the principle of least privilege to all database users.&amp;nbsp; This also applies to the user you configure for &lt;STRONG&gt;agentExecuteAsUser&lt;/STRONG&gt;. Grant only the minimum permissions needed for the tasks you want Copilot to assist with. If Copilot only needs to execute with SELECT queries, don't grant INSERT or UPDATE. If it doesn't need access to certain schemas or tables, don't grant it. The tighter the permissions on this user, the more confidence you have in what GitHub Copilot in SSMS can and can't do.&lt;/P&gt;
&lt;H5&gt;Step 4: Verify the configuration&lt;/H5&gt;
&lt;P&gt;Once configured, GitHub Copilot in SSMS will automatically impersonate the specified user when generating and executing queries. You can verify this by asking Copilot to run a query that accesses a denied table.&amp;nbsp; Access will fail, confirming the security boundary is in place.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;What this means in practice&lt;/H3&gt;
&lt;P&gt;Consider a Data Engineer who has &lt;STRONG&gt;db_owner&lt;/STRONG&gt; on a production database - perhaps they need it for deployments and maintenance. Without a configured execution context, GitHub Copilot executes queries with db_owner permissions. With &lt;STRONG&gt;agentExecuteAsUser&lt;/STRONG&gt;, you can give Copilot read-only access while the engineer retains full permissions for their day-to-day work and in the Query Editor.&lt;/P&gt;
&lt;P&gt;The user's permissions and capabilities, outside of GitHub Copilot, are unchanged. They can still run any query they have permissions to execute in the Query Editor, they can still navigate within Object Explorer. The Copilot execution context only applies to what GitHub Copilot in SSMS executes on their behalf.&lt;/P&gt;
&lt;H3&gt;Combining with CONSTITUTION.md guidelines&lt;/H3&gt;
&lt;P&gt;The &lt;STRONG&gt;agentExecuteAsUser &lt;/STRONG&gt;setting works alongside the guidelines you define in the CONSTITUTION.md body. While &lt;STRONG&gt;agentExecuteAsUser&lt;/STRONG&gt; follows permissions established at the database engine level, the rules in the constitution body provide behavioral guidelines for the AI model.&lt;/P&gt;
&lt;P&gt;Together, they provide:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Hard boundary:&lt;/STRONG&gt; Database permissions for &lt;STRONG&gt;agentExecuteAsUser&lt;/STRONG&gt; prevent unauthorized data access&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Soft boundary:&lt;/STRONG&gt; CONSTITUTION guidelines direct Copilot's behavior (e.g., “never suggest DROP statements,” “always include WHERE clauses on DELETE”)&lt;/LI&gt;
&lt;/UL&gt;
&lt;H3&gt;Get started&lt;/H3&gt;
&lt;P&gt;To leverage execution context for GitHub Copilot in SSMS, update to version 22.7 and configure the &lt;STRONG&gt;agentExecuteAsUser &lt;/STRONG&gt;frontmatter in your database constitution.&amp;nbsp; We've had a delay in getting documentation for the release published (apologies!), but once that is resolved, you can check out the &lt;A class="lia-external-url" href="https://learn.microsoft.com/sql/ssms/github-copilot/execution-context" target="_blank" rel="noopener"&gt;docs.&lt;/A&gt; In the interim, check out the&amp;nbsp;&lt;A class="lia-external-url" href="https://youtu.be/HRFBdTUHgtU" target="_blank" rel="noopener"&gt;quick video&lt;/A&gt; on our &lt;A class="lia-external-url" href="https://aka.ms/ssms-ghcp-playlist" target="_blank" rel="noopener"&gt;YouTube playlist&lt;/A&gt;, along with all the others videos for GitHub Copilot in SSMS (including Agent mode!).&amp;nbsp; As always, please share your feedback using the &lt;STRONG&gt;Send Feedback&lt;/STRONG&gt; button in SSMS or on the &lt;A class="lia-external-url" href="https://aka.ms/ssms-feedback" target="_blank" rel="noopener"&gt;SSMS feedback site&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jun 2026 17:45:47 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/introducing-execution-context-for-github-copilot-in-ssms/ba-p/4527272</guid>
      <dc:creator>erinstellato</dc:creator>
      <dc:date>2026-06-10T17:45:47Z</dc:date>
    </item>
    <item>
      <title>Announcing the Release of SSMS 22.7.0 - and many previews!</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/announcing-the-release-of-ssms-22-7-0-and-many-previews/ba-p/4526908</link>
      <description>&lt;P&gt;Today we shipped SQL Server Management Studio (SSMS) 22.7.0, and this is one of the bigger releases we've had in a while. The headline items are we’ve introduced a “What’s New” page, SQL formatting (preview), schema compare (preview), Agent Mode for GitHub Copilot in SSMS (preview), and a new execution context for GitHub Copilot. There's also continued investment in Database DevOps and a solid round of bug fixes. Thank you, as always, for taking the time to log issues and upvote what matters. It really does shape what we work on.&lt;/P&gt;
&lt;P&gt;Let's dig in.&lt;/P&gt;
&lt;H1&gt;Introducing the "What's New" page&lt;/H1&gt;
&lt;P&gt;When you update to 22.7, you’ll see something new: an in-product “What’s New” page that showcases our top features and fixes in the release. It’s a short, abbreviated summary that gives you the chance to quickly skim and understand the highlights of the release. This page automatically appears the first time you open SSMS after updating. Once you close it, it won’t show again the next time you launch SSMS. You’ll only see it again after a future update. If, at any time, you want to see the What’s New page again, you can go to &lt;STRONG&gt;Help &amp;gt; What’s New&lt;/STRONG&gt;.&lt;/P&gt;
&lt;img&gt;The "What's new" page loads when you launch SSMS for the first time after an update.&lt;/img&gt;
&lt;P&gt;Let us know what you think about it – I’ve created a&amp;nbsp;&lt;A class="lia-external-url" href="https://developercommunity.microsoft.com/t/SSMS-Whats-New-page-feedback-and-experi/11104301" target="_blank" rel="noopener"&gt;suggestion ticket on Developer Community&lt;/A&gt; for folks to leave thoughts. If you encounter a bug with the page itself (something not loading, broken links, etc.) please open a separate Developer Community ticket so our engineering team can triage and investigate it properly.&lt;/P&gt;
&lt;H1&gt;T-SQL formatting in the query editor (preview)&lt;/H1&gt;
&lt;P&gt;If you’re one of the &lt;A class="lia-external-url" href="https://developercommunity.microsoft.com/t/Format-SQL-code-using-SQL-Server-Managem/10857083?fTime=allTime" target="_blank" rel="noopener"&gt;hundreds of SSMS users&lt;/A&gt; who has been asking (and patiently waiting) for T-SQL formatting capabilities, I am very happy to report that as of today, this feature is available in preview! This functionality has been built into the core SSMS experience, no workloads or components required. To get started, simply right-click any query editor window and find the &lt;STRONG&gt;Format SQL&lt;/STRONG&gt; menu item. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;The formatter supports a range of options that let you control how your SQL is styled. You can configure keyword casing (uppercase, lowercase, or PascalCase), indentation size, semicolons after statements, and how clauses like&amp;nbsp;FROM,&amp;nbsp;WHERE, and&amp;nbsp;JOIN&amp;nbsp;are broken across lines. Alignment options let you line up clause bodies, column definitions, and SET clause items for a clean, readable layout. Multi-line list options control whether SELECT columns, WHERE predicates, and INSERT values each get their own line.&lt;/P&gt;
&lt;img&gt;From the query editor, right-click to bring up the context menu with the new "Format SQL" option.&lt;/img&gt;
&lt;P&gt;We're continuing to expand the available options, and we encourage you to&amp;nbsp;&lt;A class="lia-external-url" href="https://aka.ms/ssms-feedback" target="_blank" rel="noopener"&gt;file feedback&lt;/A&gt;&amp;nbsp;if there's a formatting behavior you'd like to see. The SQL formatting functionality in SSMS is built on top of the open-source .NET library for T-SQL parsing, ScriptDOM, also known as SqlScriptDOM. Get to know ScriptDOM in its&amp;nbsp;&lt;A class="lia-external-url" href="https://github.com/microsoft/sqlscriptdom" target="_blank" rel="noopener"&gt;GitHub repository&lt;/A&gt;, where the GitHub issues system can be used to discuss ideas and challenges encountered. Pull requests are welcome!&lt;/P&gt;
&lt;P&gt;Learn more in the&amp;nbsp;&lt;A class="lia-external-url" href="https://aka.ms/sqlformatter" target="_blank" rel="noopener"&gt;SQL formatter documentation&lt;/A&gt;.&lt;/P&gt;
&lt;H1&gt;GitHub Copilot in SSMS&lt;/H1&gt;
&lt;H2&gt;Agent mode (preview)&lt;/H2&gt;
&lt;P&gt;GitHub Copilot capabilities have expanded significantly in this release with the introduction of &lt;A class="lia-external-url" href="https://youtu.be/4_XTTmn7MW8" target="_blank" rel="noopener"&gt;Agent mode&lt;/A&gt;.&amp;nbsp; Currently in preview, Agent mode allows you to offload complex, multi-step tasks to Copilot.&amp;nbsp; Where Ask mode helps with quick answers, Agent mode helps you solve problems.&amp;nbsp; Agent mode acts, &lt;STRONG&gt;with your approval&lt;/STRONG&gt;, reducing your operational effort.&lt;/P&gt;
&lt;P&gt;Agent mode is available in the mode picker, in the bottom left of the chat window.&amp;nbsp; In the bottom right of the chat window you’ll find options for tools and skills, and you can use the plus icon to add a specific skill (listed under MCP resources) to the chat as context.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img&gt;GitHub Copilot in SSMS Agent mode (preview).&lt;/img&gt;
&lt;P&gt;Agent mode doesn’t inherit connection context from Object Explorer or the active editor, so it’s recommended to specify your database and/or server in the prompt to reduce ambiguity (e.g., &lt;EM&gt;the WideWorldImporters database on the SQL 2025 instance is slow, can you help me figure out what's going on?)&lt;/EM&gt;.&amp;nbsp; With your prompt submitted, you remain in control through &lt;A class="lia-external-url" href="https://youtu.be/sPLZ7fg7QRw" target="_blank" rel="noopener"&gt;tool approvals&lt;/A&gt; – giving you the opportunity to review and approve (or reject) any queries executed on your behalf.&amp;nbsp; Further, Agent mode operates as &lt;A class="lia-external-url" href="https://youtu.be/9spVIEVajO8" target="_blank" rel="noopener"&gt;READ_ONLY by default&lt;/A&gt; to give you the opportunity to get comfortable with how it works in a database environment. Use Agent mode for investigation, analysis, and assessment, and extend its capabilities by &lt;A class="lia-external-url" href="https://youtu.be/mG5uwrjt3fA" target="_blank" rel="noopener"&gt;creating your own skills&lt;/A&gt;.&amp;nbsp; Check out the documentation and our YouTube playlist for examples and scenarios.&lt;/P&gt;
&lt;H2&gt;Copilot execution context&lt;/H2&gt;
&lt;P&gt;Perhaps more important than making Agent mode available, we introduced the ability to configure the execution context for GitHub Copilot - a feature that has been requested every session and in feedback items. We’ll have more details in tomorrow’s blog post, but for those of you that want to restrict what GitHub Copilot can access, this is your solution.&amp;nbsp; The execution context is configured per database, using the CONSTITUTION.md for the database (as an extended property).&amp;nbsp; Within the frontmatter (a metadata block at the top of a Markdown file) of the CONSTITUTION.md, you specify a database user or SQL login as the agentExecuteAsUser.&amp;nbsp; When GitHub Copilot connects to your database, it reads the CONSTITUTION.md for the database, and if it sees the agentExecuteAsUser specified, all queries are executed under the context of the user or login.&amp;nbsp; This configuration applies to both Ask and Agent mode.&lt;/P&gt;
&lt;H1&gt;Database DevOps (preview) updates, including schema compare (preview)&lt;/H1&gt;
&lt;P&gt;Earlier this year we introduced SQL projects in SSMS via the Database DevOps workload. This release, we’re expanding the available capabilities with graphical schema compare (preview) and SQLCMD variable support in the publish dialog. I won’t say too much more, because &lt;A class="lia-external-url" href="https://community.fabric.microsoft.com/t5/Fabric-Updates-Blog/Power-up-in-SSMS-22-7-Schema-compare-and-SQL-formatting/ba-p/5193417" target="_blank" rel="noopener"&gt;Drew has an entire blog post dedicated to these features&lt;/A&gt;, but I hope these features supercharge your experience in SSMS and give you back some time.&lt;/P&gt;
&lt;H1&gt;Other improvements and bug fixes&lt;/H1&gt;
&lt;P&gt;The full list is in the&amp;nbsp;&lt;A class="lia-external-url" href="https://learn.microsoft.com/ssms/release-notes-22" target="_blank" rel="noopener"&gt;release notes&lt;/A&gt;, but a few that I expect folks will be happy to see:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Azure SQL Managed Instance&lt;/STRONG&gt;&amp;nbsp;— Added support for creating a new login using your&amp;nbsp;Windows domain account&amp;nbsp;directly from SSMS. Small change, frequently requested, and it removes a workflow that previously required dropping into scripts.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Command Line&lt;/STRONG&gt;&amp;nbsp;— Fixed an issue where the Connect to Server dialog still appeared even when both&amp;nbsp;-S&amp;nbsp;and&amp;nbsp;-d&amp;nbsp;were provided alongside a filename. See&amp;nbsp;&lt;A class="lia-external-url" href="https://developercommunity.visualstudio.com/t/Unable-to-skip-the-Connect-dialog-even-/11032294" target="_blank" rel="noopener"&gt;Unable to skip the Connect dialog, even with -S and -d parameters, if you pass as filename&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Connection&lt;/STRONG&gt;&amp;nbsp;— Selecting&amp;nbsp;&lt;STRONG&gt;Activity Monitor&lt;/STRONG&gt;&amp;nbsp;(Ctrl+Alt+A) from the toolbar no longer opens the legacy connection dialog when no Object Explorer connection is active. See&amp;nbsp;&lt;A class="lia-external-url" href="https://developercommunity.visualstudio.com/t/If-there-is-no-open-connection-on-object/11074108" target="_blank" rel="noopener"&gt;If there is no open connection on object explorer and I click Activity Monitor (Ctrl+alt+A) from toolbar, it opens the old connect to server dialog&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Object Explorer&lt;/STRONG&gt;&amp;nbsp;— Pressing&amp;nbsp;F2&amp;nbsp;on a schema-qualified object and then clicking away no longer warns about unsaved name changes when nothing actually changed. See&amp;nbsp;&lt;A class="lia-external-url" href="https://developercommunity.visualstudio.com/t/Object-Explorer-rename---warns-on-out-of/11083137" target="_blank" rel="noopener"&gt;Object Explorer rename on Schema Database objects – warns on out of focus after F2 with no name change&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Results Grid&lt;/STRONG&gt;&amp;nbsp;— The&amp;nbsp;&lt;STRONG&gt;Save Results As&lt;/STRONG&gt;&amp;nbsp;dialog no longer filters&amp;nbsp;&lt;STRONG&gt;All files&lt;/STRONG&gt;&amp;nbsp;as&amp;nbsp;*.txt. See&amp;nbsp;&lt;A class="lia-external-url" href="https://developercommunity.visualstudio.com/t/Results-Grid-Save-Results-As-dialog-fi/11090238" target="_blank" rel="noopener"&gt;Results Grid "Save Results As" dialog filters "All files" as *.txt&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Settings&lt;/STRONG&gt;&amp;nbsp;— Debug-only settings errors are no longer displayed in the Output window. See&amp;nbsp;&lt;A class="lia-external-url" href="https://developercommunity.visualstudio.com/t/SQL-Server-Management-Studio-22-versions/11053753" target="_blank" rel="noopener"&gt;SQL Server Management Studio 22 versions later than 22.2.1&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Query Hint Recommendation Tool&lt;/STRONG&gt;&amp;nbsp;— The&amp;nbsp;&lt;STRONG&gt;Do not consider combinations of hints&lt;/STRONG&gt;&amp;nbsp;label is now theme-compliant.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H1&gt;In summary&lt;/H1&gt;
&lt;P&gt;As always, thank you for using SSMS, for the feedback items, the upvotes, the comments, and the patience as we keep iterating. With Agent mode, the new execution context for Copilot, schema compare, and SQL formatting all landing in the same release, there's a lot to try in 22.7 - please tell us how it goes.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jun 2026 18:47:59 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/announcing-the-release-of-ssms-22-7-0-and-many-previews/ba-p/4526908</guid>
      <dc:creator>mbarickman</dc:creator>
      <dc:date>2026-06-10T18:47:59Z</dc:date>
    </item>
    <item>
      <title>SQL Server FCI CSV storage flips multiple times into Online (No Access) state and eventually fails</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server/sql-server-fci-csv-storage-flips-multiple-times-into-online-no/m-p/4525949#M6071</link>
      <description>&lt;P&gt;Dear Team,&lt;/P&gt;&lt;P&gt;I'm encountering an issue with our SQL Server multi‑instance failover cluster after applying the OS security patches and restarting the second node.&lt;/P&gt;&lt;P&gt;Once the second node comes back online, the Cluster Shared Volume (CSV) briefly flips multiple times into &lt;U&gt;Online (No Access)&lt;/U&gt; state and eventually fails.(&lt;EM&gt;we can make it online manually, but again flips and failed after sometime&lt;/EM&gt;).&lt;/P&gt;&lt;P&gt;To make the SQL cluster available, we either need to shut down the VM or revert the patch.&lt;/P&gt;&lt;P&gt;Before the patching, all cluster roles and SQL instances were moved off the node, and the cluster appeared healthy. The issue only occurs after the reboot of the &lt;STRONG&gt;second node&lt;/STRONG&gt;. (&lt;EM&gt;first node patched and restarted and everything working fine&lt;/EM&gt;)&lt;/P&gt;&lt;P&gt;OS : &lt;STRONG&gt;Windows Server 2025 Standard&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Patch tried:&lt;/P&gt;&lt;P&gt;KB5075899 (February,2026 )&lt;/P&gt;&lt;P&gt;KB5078740 (March,2026)&lt;/P&gt;&lt;P&gt;KB5082063 (April 2026 )&lt;/P&gt;&lt;P&gt;KB5087539 (May 2026)&lt;/P&gt;&lt;P&gt;Could you please advise if there are any specific checks or steps we should follow during OS patching to prevent CSV access loss?&lt;/P&gt;&lt;P&gt;Is it an issue with the patch or something else?&lt;/P&gt;&lt;P&gt;Any insights or recommended actions would be really helpful to perform the security OS patch in the server&lt;/P&gt;&lt;P&gt;Thanks you!&lt;/P&gt;</description>
      <pubDate>Fri, 05 Jun 2026 15:09:57 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server/sql-server-fci-csv-storage-flips-multiple-times-into-online-no/m-p/4525949#M6071</guid>
      <dc:creator>jobymathew10</dc:creator>
      <dc:date>2026-06-05T15:09:57Z</dc:date>
    </item>
    <item>
      <title>Windows server 2025 SQL patching cluster problem.</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server/windows-server-2025-sql-patching-cluster-problem/m-p/4525045#M6069</link>
      <description>&lt;P&gt;Dear Team,&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;I have a problem when I am patching upgrade windows server 2025 with KB5091157. After patching is the clustering is not able to join back; it shows the error with credentials. The log error is "Cannot connect sqlxxxxxxx." you do not have administrative privileges on the cluster. Contact your network administrator to request access.&amp;nbsp;&lt;BR /&gt;Note: The server is not in a different VLAN network.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jun 2026 07:17:35 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server/windows-server-2025-sql-patching-cluster-problem/m-p/4525045#M6069</guid>
      <dc:creator>SRENGCHANNY</dc:creator>
      <dc:date>2026-06-03T07:17:35Z</dc:date>
    </item>
    <item>
      <title>mssql-python 1.8.0: friendlier Row access, Bulk Copy with MSI, and a refreshed ODBC driver</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/mssql-python-1-8-0-friendlier-row-access-bulk-copy-with-msi-and/ba-p/4524076</link>
      <description>&lt;P data-line="2"&gt;We just shipped &lt;STRONG&gt;mssql-python 1.8.0&lt;/STRONG&gt;, the official Microsoft SQL Server driver for Python. This release focuses on day-to-day ergonomics, a long-requested authentication option for Bulk Copy, and a refresh of the bundled ODBC driver.&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;pip install --upgrade mssql-python&lt;/LI-CODE&gt;
&lt;H2 data-line="8"&gt;Highlights&lt;/H2&gt;
&lt;H3 data-line="10"&gt;Row objects now support string-key indexing&lt;/H3&gt;
&lt;P data-line="12"&gt;Row&amp;nbsp;already supported integer indexing and attribute access. In 1.8.0 you can also index by column name, which is the pattern most users reach for first:&lt;/P&gt;
&lt;LI-CODE lang="python"&gt;cursor.execute("SELECT id, display_name FROM users WHERE id = ?", [42])
row = cursor.fetchone()

row[0]              # 42                  - by index
row.display_name    # 'Ada'               - by attribute
row["display_name"] # 'Ada'               - new in 1.8.0&lt;/LI-CODE&gt;
&lt;P data-line="24"&gt;If you set&amp;nbsp;cursor.lowercase = True, string-key lookups become case-insensitive too, matching the casing behavior of attribute access.&lt;/P&gt;
&lt;H3 data-line="29"&gt;ActiveDirectoryMSI authentication for Bulk Copy&lt;/H3&gt;
&lt;P data-line="31"&gt;Bulk Copy operations now support&amp;nbsp;Authentication=ActiveDirectoryMSI, so workloads running with a managed identity (Azure VMs, App Service, Functions, Container Apps, AKS) can stream bulk inserts to Azure SQL without provisioning a separate credential.&lt;/P&gt;
&lt;H3 data-line="36"&gt;Bundled ODBC driver upgraded to 18.6.2.1&lt;/H3&gt;
&lt;P data-line="38"&gt;We've upgraded the bundled Microsoft ODBC Driver for SQL Server from 18.5.1.1 to&amp;nbsp;&lt;STRONG&gt;18.6.2.1&lt;/STRONG&gt;. You pick up the upstream fixes and TLS/cert improvements just by upgrading the wheel. No separate ODBC install step.&lt;/P&gt;
&lt;H2 data-line="42"&gt;Bug fixes worth calling out&lt;/H2&gt;
&lt;UL data-line="44"&gt;
&lt;LI data-line="44"&gt;&lt;STRONG&gt;Deferred connect-attribute use-after-free&lt;/STRONG&gt;. Values passed to connection attributes set before connect are now stored in member buffers, so the driver no longer reads freed memory in some attribute-set paths.&lt;/LI&gt;
&lt;LI data-line="48"&gt;&lt;STRONG&gt;Connection string parsed multiple times in the auth path&lt;/STRONG&gt;. The auth code path was reparsing the connection string several times per connect. It now operates on the already-parsed parameter dictionary, which is both faster and easier to reason about. Sensitive parameters (UID,&amp;nbsp;PWD,&amp;nbsp;Trusted_Connection,&amp;nbsp;Authentication) are sanitized through a single canonical path before the ODBC handoff.&lt;/LI&gt;
&lt;LI data-line="54"&gt;&lt;STRONG&gt;executemany type annotation regression&lt;/STRONG&gt;.&amp;nbsp;seq_of_parameters&amp;nbsp;now uses a covariant&amp;nbsp;Sequence, so passing a list of tuples (or any covariant sequence type) type-checks cleanly again.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 data-line="58"&gt;Upgrading&lt;/H2&gt;
&lt;P data-line="60"&gt;For most users,&amp;nbsp;pip install --upgrade mssql-python&amp;nbsp;is all you need. Nothing in this release is intentionally breaking. If you have type stubs or mypy pins that depended on the previous invariant&amp;nbsp;seq_of_parameters&amp;nbsp;annotation, you can drop the workaround.&lt;/P&gt;
&lt;H2 data-line="65"&gt;Thanks&lt;/H2&gt;
&lt;P data-line="67"&gt;Thanks to everyone who filed issues, sent repros, and reviewed PRs in this cycle. The Row indexing and connection-string parsing work came directly from user-reported scenarios.&lt;/P&gt;
&lt;P data-line="71"&gt;Full changelog and PR list:&amp;nbsp;&lt;A href="https://github.com/microsoft/mssql-python/releases/tag/v1.8.0" data-href="https://github.com/microsoft/mssql-python/releases/tag/v1.8.0" target="_blank"&gt;microsoft/mssql-python releases&lt;/A&gt;.&lt;/P&gt;</description>
      <pubDate>Fri, 29 May 2026 19:00:59 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/mssql-python-1-8-0-friendlier-row-access-bulk-copy-with-msi-and/ba-p/4524076</guid>
      <dc:creator>DavidLevy</dc:creator>
      <dc:date>2026-05-29T19:00:59Z</dc:date>
    </item>
    <item>
      <title>Announcing the release of Microsoft OLE DB Driver 19.4.2 for SQL Server</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/announcing-the-release-of-microsoft-ole-db-driver-19-4-2-for-sql/ba-p/4522989</link>
      <description>&lt;P data-line="2"&gt;We're pleased to announce the general availability (GA) release of &lt;STRONG&gt;Microsoft OLE DB Driver 19.4.2 for SQL Server&lt;/STRONG&gt;. This is a maintenance update to the 19.4 line that improves TLS handling, raises a long-standing connection redirection limit, refreshes the bundled authentication library, and fixes accessibility issues in the UDL dialog.&lt;/P&gt;
&lt;H2 data-line="4"&gt;Download&lt;/H2&gt;
&lt;UL data-line="6"&gt;
&lt;LI data-line="6"&gt;&lt;STRONG&gt;&lt;A href="https://go.microsoft.com/fwlink/?linkid=2364027" target="_blank" rel="noopener" data-href="https://go.microsoft.com/fwlink/?linkid=2364027"&gt;x64 / Arm64 installer&lt;/A&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI data-line="7"&gt;&lt;STRONG&gt;&lt;A href="https://go.microsoft.com/fwlink/?linkid=2364026" target="_blank" rel="noopener" data-href="https://go.microsoft.com/fwlink/?linkid=2364026"&gt;x86 installer&lt;/A&gt;&lt;/STRONG&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="9"&gt;The 64-bit MSI continues to install the appropriate binary (x64 or Arm64) automatically based on the OS platform. MSOLEDBSQL 19 installs side by side with MSOLEDBSQL 18.&lt;/P&gt;
&lt;P data-line="11"&gt;&lt;STRONG&gt;Prerequisite:&lt;/STRONG&gt;&amp;nbsp;the&amp;nbsp;&lt;A href="https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist"&gt;Microsoft Visual C++ Redistributable&lt;/A&gt;&amp;nbsp;must be installed before running the driver installer.&lt;/P&gt;
&lt;H2 data-line="13"&gt;What's new in 19.4.2&lt;/H2&gt;
&lt;H3 data-line="15"&gt;Features added&lt;/H3&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Feature&lt;/th&gt;&lt;th&gt;Details&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;SSL/TLS improvements&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Improved SSL/TLS handling for better security and performance.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;10 redirects per connection&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;The driver no longer caps connection redirections at 2, which removes a long-standing failure mode for workloads that hit redirection-heavy topologies (for example, certain Azure SQL routing scenarios).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H3 data-line="22"&gt;Bugs fixed&lt;/H3&gt;
&lt;DIV class="styles_lia-table-wrapper__h6Xo9 styles_table-responsive__MW0lN"&gt;&lt;table border="1" style="border-width: 1px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Fix&lt;/th&gt;&lt;th&gt;Details&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;UDL accessibility defects&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Fixed accessibility issues in the Universal Data Link (UDL) dialog.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;STRONG&gt;Updated authentication library&lt;/STRONG&gt;&lt;/td&gt;&lt;td&gt;Microsoft SQL Driver Authentication library (mssql-auth.dll) updated to version&amp;nbsp;&lt;STRONG&gt;1.1.3&lt;/STRONG&gt;.&amp;nbsp;mssql-auth.dll&amp;nbsp;is the ADAL replacement introduced in 19.4.1 and is installed as part of the driver setup.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;colgroup&gt;&lt;col style="width: 50.00%" /&gt;&lt;col style="width: 50.00%" /&gt;&lt;/colgroup&gt;&lt;/table&gt;&lt;/DIV&gt;
&lt;H2 data-line="29"&gt;Supported languages&lt;/H2&gt;
&lt;P data-line="31"&gt;19.4.2 is available in: Chinese (Simplified), Chinese (Traditional), Czech, English (United States), French, German, Italian, Japanese, Korean, Polish, Portuguese (Brazil), Russian, Spanish, and Turkish. Direct per-language download links are available in the&amp;nbsp;&lt;A href="https://learn.microsoft.com/sql/connect/oledb/release-notes-for-oledb-driver-for-sql-server" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/sql/connect/oledb/release-notes-for-oledb-driver-for-sql-server"&gt;Release notes&lt;/A&gt;&amp;nbsp;and the&amp;nbsp;&lt;A href="https://learn.microsoft.com/sql/connect/oledb/download-oledb-driver-for-sql-server" target="_blank" rel="noopener" data-href="https://learn.microsoft.com/sql/connect/oledb/download-oledb-driver-for-sql-server"&gt;Download page&lt;/A&gt;.&lt;/P&gt;
&lt;H2 data-line="33"&gt;Upgrading&lt;/H2&gt;
&lt;P data-line="35"&gt;If you're on 19.4.1 or earlier in the 19.x line, an in-place upgrade is supported. As always, we recommend validating in a non-production environment first, especially if your application depends on the redirection or TLS behaviors touched in this release.&lt;/P&gt;
&lt;H2 data-line="37"&gt;Feedback&lt;/H2&gt;
&lt;P data-line="39"&gt;Please file issues and feature requests on the&amp;nbsp;&lt;A href="https://feedback.azure.com/" target="_blank" rel="noopener" data-href="https://feedback.azure.com/"&gt;Microsoft OLE DB Driver for SQL Server feedback site&lt;/A&gt;&amp;nbsp;or via your usual support channel. Thanks to everyone who reported the UDL accessibility and redirection-limit issues that drove this release.&lt;/P&gt;</description>
      <pubDate>Tue, 26 May 2026 17:12:48 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/announcing-the-release-of-microsoft-ole-db-driver-19-4-2-for-sql/ba-p/4522989</guid>
      <dc:creator>DavidLevy</dc:creator>
      <dc:date>2026-05-26T17:12:48Z</dc:date>
    </item>
    <item>
      <title>Announcing mssql-django 1.7.2</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/announcing-mssql-django-1-7-2/ba-p/4522336</link>
      <description>&lt;P data-line="8"&gt;We're pleased to announce the release of &lt;STRONG&gt;mssql-django 1.7.2&lt;/STRONG&gt;, a patch release that ships three targeted bug fixes for the Django backend for Microsoft SQL Server and Azure SQL. This release focuses on correctness: timezone-aware datetimes,&amp;nbsp;QuerySet.explain()&amp;nbsp;on Django 4.0+, and exception handling in a test utility.&lt;/P&gt;
&lt;P data-line="10"&gt;Install or upgrade from PyPI:&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;pip install --upgrade mssql-django&lt;/LI-CODE&gt;
&lt;H2 data-line="16"&gt;What's new in 1.7.2&lt;/H2&gt;
&lt;H3 data-line="18"&gt;Correct timezone handling for&amp;nbsp;DATETIMEOFFSET&amp;nbsp;and&amp;nbsp;Now()&amp;nbsp;under&amp;nbsp;USE_TZ=True&lt;/H3&gt;
&lt;P data-line="20"&gt;Two long-standing timezone issues are fixed in this release:&lt;/P&gt;
&lt;UL data-line="22"&gt;
&lt;LI data-line="22"&gt;&lt;STRONG&gt;handle_datetimeoffset&amp;nbsp;now parses the timezone offset from SQL Server's binary&amp;nbsp;DATETIMEOFFSET&amp;nbsp;representation.&lt;/STRONG&gt;&amp;nbsp;Previously, values read from&amp;nbsp;DATETIMEOFFSET&amp;nbsp;columns could be returned without their offset, leading to naive datetimes or values converted using the wrong zone. The backend now returns properly timezone-aware&amp;nbsp;datetime&amp;nbsp;objects.&lt;/LI&gt;
&lt;LI data-line="24"&gt;&lt;STRONG&gt;Now()&amp;nbsp;emits&amp;nbsp;SYSDATETIMEOFFSET()&amp;nbsp;when&amp;nbsp;USE_TZ=True.&lt;/STRONG&gt;&amp;nbsp;When Django is configured with&amp;nbsp;USE_TZ=True, the expression&amp;nbsp;Now()&amp;nbsp;previously compiled to&amp;nbsp;SYSDATETIME(), which returns the SQL Server host's local time without offset information. On non-UTC hosts this produced timestamps that were silently shifted. With this fix,&amp;nbsp;Now()&amp;nbsp;compiles to&amp;nbsp;SYSDATETIMEOFFSET()&amp;nbsp;under&amp;nbsp;USE_TZ=True&amp;nbsp;and continues to compile to&amp;nbsp;SYSDATETIME()&amp;nbsp;when&amp;nbsp;USE_TZ=False, matching Django's expectations.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="26"&gt;The release adds regression tests covering UTC, +05:30 (IST), -05:00 (EST), -09:30 (Marquesas), and +05:45 (Nepal) offsets, plus a new&amp;nbsp;NowSQLTemplateTests&amp;nbsp;that pins the SQL template emitted in each&amp;nbsp;USE_TZ&amp;nbsp;mode.&lt;/P&gt;
&lt;H3 data-line="28"&gt;QuerySet.explain()&amp;nbsp;no longer raises&amp;nbsp;AttributeError&amp;nbsp;on Django 4.0+&lt;/H3&gt;
&lt;P data-line="30"&gt;In Django 4.0 the internal API for EXPLAIN plans changed: query.explain_format and query.explain_options were replaced by a single query.explain_info object. The mssql-django compiler still read the old attributes, which raised AttributeError whenever an application called .explain() on a queryset.&lt;/P&gt;
&lt;P data-line="32"&gt;The compiler now reads the correct attribute based on the running Django version, so&amp;nbsp;.explain()&amp;nbsp;works again on Django 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, and 6.0. A new&amp;nbsp;ExplainRegressionTests&amp;nbsp;suite locks in the behavior.&lt;/P&gt;
&lt;H3 data-line="34"&gt;Test utility no longer swallows exceptions in&amp;nbsp;finally&lt;/H3&gt;
&lt;P data-line="36"&gt;A return statement inside a finally block in the JSONField support probe (_check_jsonfield_supported_sqlite()) was silently swallowing exceptions, including KeyboardInterrupt and other BaseException subclasses. The return has been removed so exceptions propagate as Python intends.&lt;/P&gt;
&lt;H2 data-line="42"&gt;Compatibility&lt;/H2&gt;
&lt;P data-line="44"&gt;mssql-django 1.7.2 supports:&lt;/P&gt;
&lt;UL data-line="46"&gt;
&lt;LI data-line="46"&gt;&lt;STRONG&gt;Django&lt;/STRONG&gt;: 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, 6.0&lt;/LI&gt;
&lt;LI data-line="47"&gt;&lt;STRONG&gt;Python&lt;/STRONG&gt;: 3.8 through 3.14&lt;/LI&gt;
&lt;LI data-line="48"&gt;&lt;STRONG&gt;SQL Server&lt;/STRONG&gt;: 2017, 2019, 2022, 2025; Azure SQL Database; Azure SQL Managed Instance&lt;/LI&gt;
&lt;LI data-line="49"&gt;&lt;STRONG&gt;ODBC Driver&lt;/STRONG&gt;: 17 or 18 for SQL Server (driver 18 is the default since 1.7, with automatic fallback to 17 when 18 is not installed)&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="51"&gt;No configuration changes are required to pick up the fixes in 1.7.2. Upgrade in place:&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;pip install --upgrade mssql-django&lt;/LI-CODE&gt;
&lt;H2 data-line="57"&gt;Upgrading from 1.7.1&lt;/H2&gt;
&lt;P data-line="59"&gt;1.7.2 is a drop-in replacement for 1.7.1. If your application:&lt;/P&gt;
&lt;UL data-line="61"&gt;
&lt;LI data-line="61"&gt;reads from&amp;nbsp;DATETIMEOFFSET&amp;nbsp;columns,&lt;/LI&gt;
&lt;LI data-line="62"&gt;uses&amp;nbsp;django.db.models.functions.Now()&amp;nbsp;with&amp;nbsp;USE_TZ=True, or&lt;/LI&gt;
&lt;LI data-line="63"&gt;calls&amp;nbsp;QuerySet.explain()&amp;nbsp;on Django 4.0+,&lt;/LI&gt;
&lt;/UL&gt;
&lt;P data-line="65"&gt;you will see corrected behavior after upgrading. Applications that previously worked around the timezone offset issue (for example by manually attaching&amp;nbsp;tzinfo&amp;nbsp;to values read from&amp;nbsp;DATETIMEOFFSET&amp;nbsp;columns) should review those workarounds; values returned by the ORM are now timezone-aware by default.&lt;/P&gt;
&lt;H2 data-line="67"&gt;Thank you&lt;/H2&gt;
&lt;P data-line="69"&gt;Thanks to everyone who reported the underlying issues, contributed reproductions and test cases. Bug reports and pull requests are always welcome on&amp;nbsp;&lt;A href="https://github.com/microsoft/mssql-django" target="_blank" rel="noopener" data-href="https://github.com/microsoft/mssql-django"&gt;GitHub&lt;/A&gt;.&lt;/P&gt;
&lt;H2 data-line="71"&gt;Links&lt;/H2&gt;
&lt;UL data-line="73"&gt;
&lt;LI data-line="73"&gt;Source:&amp;nbsp;&lt;A href="https://github.com/microsoft/mssql-django" target="_blank" rel="noopener" data-href="https://github.com/microsoft/mssql-django"&gt;https://github.com/microsoft/mssql-django&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="74"&gt;PyPI:&amp;nbsp;&lt;A href="https://pypi.org/project/mssql-django/" target="_blank" rel="noopener" data-href="https://pypi.org/project/mssql-django/"&gt;https://pypi.org/project/mssql-django/&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="75"&gt;Release PR:&amp;nbsp;&lt;A href="https://github.com/microsoft/mssql-django/pull/528" target="_blank" rel="noopener" data-href="https://github.com/microsoft/mssql-django/pull/528"&gt;https://github.com/microsoft/mssql-django/pull/528&lt;/A&gt;&lt;/LI&gt;
&lt;LI data-line="76"&gt;File an issue:&amp;nbsp;&lt;A href="https://github.com/microsoft/mssql-django/issues" target="_blank" rel="noopener" data-href="https://github.com/microsoft/mssql-django/issues"&gt;https://github.com/microsoft/mssql-django/issues&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Fri, 22 May 2026 17:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/announcing-mssql-django-1-7-2/ba-p/4522336</guid>
      <dc:creator>DavidLevy</dc:creator>
      <dc:date>2026-05-22T17:00:00Z</dc:date>
    </item>
    <item>
      <title>mssql-python 1.7.1 and the case of the missing megabytes</title>
      <link>https://techcommunity.microsoft.com/t5/sql-server-blog/mssql-python-1-7-1-and-the-case-of-the-missing-megabytes/ba-p/4521991</link>
      <description>&lt;P&gt;We just shipped mssql-python 1.7.1 to PyPI. This release is mostly polish, but the road to publishing it was bumpier than expected, and there is some housekeeping on the PyPI side worth talking about.&lt;/P&gt;
&lt;H2&gt;What's in 1.7.1&lt;/H2&gt;
&lt;P&gt;A handful of correctness, performance, and platform fixes that landed since 1.6.0:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;PERF:&lt;/STRONG&gt;&amp;nbsp;UTF-16 string handling now goes through&amp;nbsp;simdutf&amp;nbsp;and&amp;nbsp;std::u16string, cutting overhead on every string round-trip between Python and the driver.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;PERF:&lt;/STRONG&gt;&amp;nbsp;Faster&amp;nbsp;execute()&amp;nbsp;hot path with soft reset, prepare caching, and guarded diagnostics.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;FIX:&lt;/STRONG&gt;&amp;nbsp;Login failures now raise a proper&amp;nbsp;mssql_python&amp;nbsp;exception instead of a raw&amp;nbsp;RuntimeError&amp;nbsp;(issue #532).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;FIX:&lt;/STRONG&gt;&amp;nbsp;Released the GIL around blocking&amp;nbsp;SQLSetConnectAttr&amp;nbsp;calls so that in-process SSH tunnels (paramiko + sshtunnel) no longer hang&amp;nbsp;connect().&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;FIX:&lt;/STRONG&gt;&amp;nbsp;executemany&amp;nbsp;no longer raises a&amp;nbsp;RuntimeError&amp;nbsp;when decimal signs change between rows (issue #557).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;FIX:&lt;/STRONG&gt;&amp;nbsp;Consistent retrieval of CP1252-encoded data in&amp;nbsp;VARCHAR&amp;nbsp;columns across Windows and Linux (issue #468).&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;FIX:&lt;/STRONG&gt;&amp;nbsp;manylinux_2_28&amp;nbsp;build targets so RHEL 8 / glibc 2.28 users get wheels out of the box.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;FIX:&lt;/STRONG&gt;&amp;nbsp;macOS Python 3.10 now gets a proper&amp;nbsp;universal2&amp;nbsp;wheel.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;DOC:&lt;/STRONG&gt;&amp;nbsp;Setup instructions for Azure Linux.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Full set of changes is in the&amp;nbsp;&lt;A href="https://github.com/microsoft/mssql-python/pull/593" target="_blank" rel="noopener"&gt;1.7.1 PR&lt;/A&gt;.&lt;/P&gt;
&lt;H2&gt;The PyPI space story&lt;/H2&gt;
&lt;P&gt;This release also forced us to confront something we've been watching for a while:&amp;nbsp;&lt;STRONG&gt;we ran out of room on PyPI.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;mssql-python ships native code with bundled ODBC driver binaries for every supported OS / architecture / Python version combination. Each wheel is sizeable on its own, and the number of combinations grows quickly: Windows x64 / ARM64 / x86, macOS universal2, manylinux x86_64 / aarch64, musllinux x86_64 / aarch64, across multiple Python versions. Multiply that by every release we keep on PyPI and the project size adds up fast.&lt;/P&gt;
&lt;P&gt;PyPI projects have a per-project storage quota. When we tried to release 1.7.0 we hit it.&lt;/P&gt;
&lt;H3&gt;What we did short-term&lt;/H3&gt;
&lt;P&gt;To get 1.7.1 published we cleaned house on old artifacts that nobody should be pulling in fresh installs anymore:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Removed all&amp;nbsp;1.0.0-alpha&amp;nbsp;packages&lt;/STRONG&gt;&amp;nbsp;from PyPI.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Removed all&amp;nbsp;1.x.x-beta&amp;nbsp;packages&lt;/STRONG&gt;&amp;nbsp;from PyPI.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Removed the 1.7.0 packages&lt;/STRONG&gt; that made it to PyPI before we hit the space limit.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Pre-release alphas and betas were intentionally there for early adopters during the ramp-up of the driver. None of them are recommended for production use, and the GA versions (1.0.0 and up) supersede everything those wheels offered. If you were pinned to an alpha or beta version, please move to the latest GA release (pip install -U mssql-python). If you have a specific reason that you can't, please let us know in an issue. We want to hear about it.&lt;/P&gt;
&lt;H3&gt;What we're doing longer-term&lt;/H3&gt;
&lt;P&gt;Cleaning out old pre-releases buys us breathing room, not a solution. The wheel matrix is going to keep growing as we add platforms, and we don't want to be back in the same spot in three releases.&lt;/P&gt;
&lt;P&gt;We're attacking the problem from two directions in parallel:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Split up the deployment.&lt;/STRONG&gt;&amp;nbsp;We're working out how to break the published artifacts into smaller pieces so that an install only pulls down what it actually needs. Concretely we're evaluating splitting the bundled native dependencies (ODBC driver binaries, etc.) out of the main wheels so the per-platform wheel size drops substantially. Exact shape is still being designed and we'll have more to share when we've nailed it down. The goal is that a typical&amp;nbsp;pip install mssql-python&amp;nbsp;stays a one-liner with no extra steps, while the on-disk and on-PyPI footprint is a fraction of what it is today.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Asked PyPI for more space.&lt;/STRONG&gt;&amp;nbsp;In parallel we've put in a request to PyPI for a storage quota increase. This is a normal process for projects that legitimately need more room, and it gives us a safety net while the longer-term splitting work lands.&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;We are looking at the space increase as the immediate buffer, and the split is the durable fix.&lt;/P&gt;
&lt;H2&gt;Upgrading&lt;/H2&gt;
&lt;P&gt;Nothing user-visible has changed about how you install or use the driver:&lt;/P&gt;
&lt;LI-CODE lang="bash"&gt;pip install -U mssql-python&lt;/LI-CODE&gt;
&lt;P&gt;If you previously pinned to an&amp;nbsp;alpha&amp;nbsp;or&amp;nbsp;beta&amp;nbsp;version, you'll need to move to the latest GA. If you hit any issues during the upgrade, please file a&amp;nbsp;&lt;A href="https://github.com/microsoft/mssql-python/issues" target="_blank" rel="noopener"&gt;GitHub issue&lt;/A&gt;&amp;nbsp;— we read all of them.&lt;/P&gt;
&lt;H2&gt;Thanks&lt;/H2&gt;
&lt;P&gt;Thanks to everyone who filed bug reports, repro scripts, and PRs that fed into this release. The fixes we shipped came from real user issues, and the SSH-tunnel and CP1252 ones in particular were caught by community reproductions that made the root cause obvious. Keep them coming.&lt;/P&gt;</description>
      <pubDate>Thu, 21 May 2026 17:00:00 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/sql-server-blog/mssql-python-1-7-1-and-the-case-of-the-missing-megabytes/ba-p/4521991</guid>
      <dc:creator>DavidLevy</dc:creator>
      <dc:date>2026-05-21T17:00:00Z</dc:date>
    </item>
  </channel>
</rss>

