r/SQLServer • • 23h ago

Discussion Independent public-domain R2DBC driver for SQL Server — feedback on pure-JDK TDS and FedAuth?

1 Upvotes

I’ve been working on an independent R2DBC driver for Microsoft SQL Server (not a fork of the official one). It’s public-domain, implements the R2DBC SPI, and speaks TDS using only the JDK (no Netty).

The main reason I started it was better control over FedAuth / Azure AD / Windows Authentication flows in a reactive stack. I hit enough friction with existing options that it seemed worth doing a clean implementation.

A few things I’m particularly interested in feedback on:

  • How the pure-JDK TDS approach compares to Netty-based ones for typical workloads
  • Edge cases or gotchas people have seen with FedAuth / Azure AD token handling in reactive clients
  • Whether the public-domain licensing is actually useful for anyone, or mostly irrelevant

Maven coordinates if anyone wants to try it:

org.mssqllib.r2dbc.mssql:r2dbc-mssql:1.0.0

Site: mssqllib.org

Curious what others have run into with reactive SQL Server clients, or if there are specific protocol/auth areas worth focusing on next. Happy to answer questions about the implementation.

This version leads with technical questions instead of a pure announcement, which usually does better with both filters and the subreddit culture. Let me know if you want it shorter, more specific, or adjusted for a different sub.


r/SQLServer • • 21h ago

Community Share Msg 1934 "SET options have incorrect settings: QUOTED_IDENTIFIER" - what I found testing it on SQL Server 2022

1 Upvotes

Hit this updating AspNetUsers from sqlcmd, while the ASP.NET Core app updates the same table daily without issue. Tested it properly afterwards with temp tables, SQL Server 2022, compat 150:

- Classic (ODBC) sqlcmd 15.0 starts with QUOTED_IDENTIFIER = 0 (and ARITHABORT = 0). SqlClient/ODBC/OLE DB/SSMS connect with it on.

- ASP.NET Core Identity's unique indexes on nullable columns are filtered (IS NOT NULL), so UserNameIndex and RoleNameIndex trip it.

- With QI OFF: INSERT/UPDATE/DELETE, CREATE INDEX and ALTER INDEX REBUILD all fail; a plain SELECT is fine; a SELECT using an xml .value() fails.

- ARITHABORT OFF did NOT fail with ANSI_WARNINGS on at compat 150; ANSI_WARNINGS OFF did.

- A proc created with QI OFF fails even when called from a QI ON session (captured at create time).

- sqlcmd -I fixes it; go-sqlcmd ignores -I because QI is always on.

Wrote it up with the test matrix and a sys.sql_modules query to find modules saved with the wrong setting: https://knowledgemarkg.com/blog/sql-server-msg-1934-set-options-quoted-identifier


r/SQLServer • • 22h ago

Community Share Friday Feedback: Offload statistics updates

2 Upvotes

The Fall Friday Feedbacks continue and this week I want to ask about updating statistics. Poll is below, but as always, if you have interesting challenges or scenarios you want to share, please comment below. I've seen a lot, but I know I haven't seen everything...

16 votes, 6d left
Yes, always!
Yes, scheduled updates only
Yes, automatic updates only
No thanks