Recent Discussions
Compat level 90: XML string-to-datetime UDF
Hello, I’m testing a behavior described in SQL Server documentation for **database compatibility level 90**. The docs state that a user-defined function that converts an XML constant string value to a SQL Server date/time type is marked as **deterministic**. On **SQL Server 2005**, I’m seeing the opposite: the function is marked as **non-deterministic** (`IsDeterministic = 0`). I’m trying to understand whether I’m missing a requirement/constraint or whether this is a doc mismatch / version-specific behavior. ### Environment - Product: **Microsoft SQL Server 2005** - Database compatibility level: **90** --- ## ✅ Repro script ```sql IF OBJECT_ID('dbo.fn_ParamXmlToDatetime', 'FN') IS NOT NULL DROP FUNCTION dbo.fn_ParamXmlToDatetime; GO CREATE FUNCTION dbo.fn_ParamXmlToDatetime (@xml XML) RETURNS DATETIME WITH SCHEMABINDING AS BEGIN DECLARE @y DATETIME; -- Convert an XML value to DATETIME SET @y = CONVERT(DATETIME, @xml.value('(/r)[1]', 'datetime')); RETURN @y; END GO SELECT OBJECTPROPERTY(OBJECT_ID('dbo.fn_ParamXmlToDatetime'), 'IsDeterministic') AS IsDeterministic, OBJECTPROPERTY(OBJECT_ID('dbo.fn_ParamXmlToDatetime'), 'IsPrecise') AS IsPrecise; GO ``` ### Actual result `IsDeterministic = 0` (non-deterministic) ### Expected result (based on docs) `IsDeterministic = 1` (deterministic) for this pattern under compat level 90. --- ## Questions 1. Are there additional conditions required for SQL Server to mark this UDF as deterministic (for example, specific XQuery usage, avoiding `CONVERT`, using `CAST`, using `datetime2` doesn’t exist in 2005, etc.)? 2. Does the determinism rule apply only when converting from an **XML literal constant** inside the function, rather than an XML parameter value? 3. Is this behavior different for **typed XML** (XML schema collections) vs **untyped XML**? 4. Is this a known difference/bug in SQL Server 2005 where the UDF is functionally deterministic but still reported as non-deterministic by `OBJECTPROPERTY`? Thank you for any clarification. ---4Views0likes0CommentsSQL Server 2005 (compatibility level 90)
Hello, I’m testing the behavior described in the SQL Server documentation for **compatibility level 90** regarding the special attributes `xsi:nil` and `xsi:type`: > “The special attributes `xsi:nil` and `xsi:type` can't be queried or modified by data manipulation language statements. This means that `/e/@xsi:nil` fails while `/e/@*` ignores the `xsi:nil` and `xsi:type` attributes. However, `/e` returns the `xsi:nil` and `xsi:type` attributes for consistency with `SELECT xmlCol`, even if `xsi:nil = "false"`. ” But on **SQL Server 2005**, I can successfully query `@xsi:nil` and it returns the expected value. I’m trying to reproduce the documented “`/e/@xsi:nil` fails” behavior, but I can’t. ### Environment - Product: **Microsoft SQL Server 2005** - Database compatibility level: **90** --- ## ✅ Repro script ```sql IF EXISTS (SELECT * FROM sys.xml_schema_collections WHERE name = 'MyTestSchema') DROP XML SCHEMA COLLECTION MyTestSchema; GO CREATE XML SCHEMA COLLECTION MyTestSchema AS N' <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="root"> <xsd:complexType> <xsd:sequence> <xsd:element name="element" nillable="true" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>'; GO DECLARE @xmlData XML(MyTestSchema) = N' <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <element xsi:nil="true" /> </root>'; ;WITH XMLNAMESPACES ('http://www.w3.org/2001/XMLSchema-instance' as xsi) SELECT @xmlData.query('<result> { /root/element/@xsi:nil } </result>') AS Typed_Result; ``` ### Actual result `Typed_Result` contains `xsi:nil="true"` under `<result>...`. ### Expected result (based on docs) I expected `/root/element/@xsi:nil` to fail, or not return `xsi:nil`. --- ## Questions 1. In the documentation, does “data manipulation language statements” mean only **XML DML** (i.e., `.modify()`), not XQuery used in `SELECT` with `.query()` / `.value()`? 2. Does the “`/e/@xsi:nil` fails” behavior apply only when the XML is stored in a **table column**, not when using an **XML variable**? 3. Is the behavior different between **typed XML** (with an XML schema collection) vs **untyped XML**? 4. Can someone provide a minimal reproduction in SQL Server 2005 where `/e/@xsi:nil` fails as described? Thank you. ---4Views0likes0Comments- 108Views0likes6Comments
SQL Server 2025 VECTOR functions accepting JSON array strings
Hello! Playing with new VECTOR type and functions, I can read following https://learn.microsoft.com/en-us/sql/t-sql/functions/vector-distance-transact-sql?view=sql-server-ver17 for vector parameters: An expression that evaluates to vector data type. To me this means that any expression (including character strings as JSON-arrays) can be used as parameter. Since INSERT statement accepts to convert a JSON-array string to a VECTOR, I would expect that these function also accept this conversion. However, it appears that we are forced to cast the JSON-array to VECTOR. Any chance to improve this? Here some T-SQL example: declare v1 as VECTOR(3) = '[-1,1,0]' declare S1 as VARCHAR(50) = '[-1,1,0]' drop table tab1; create table tab1 (pkey int not null primary key, emb vector(3)); insert into tab1 values ( 101, v1 ); insert into tab1 values ( 102, S1 ); select * from tab1 order by pkey; select vector_distance('cosine',emb,@v1) from tab1; select vector_distance('cosine',emb,@s1) from tab1; -- fails Seb9Views0likes0CommentsFail to OPENROWSET insert geometry data from parquet
Hi! I'm trying to insert geometry data (WKB) from a parquet file to a data base table. I manage to get it working for small geometries but it's failing for lager geometriers. Here is the code: INSERT db.s.t SELECT geometry::STGeomFromWKB(a.geom,1) FROM OPENROWSET ( BULK 'path_to.parquet', FORMAT = 'PARQUET', DATA_SOURCE = 's3_sorce' ) AS a The failure: String or binary data would be truncated while reading column of type 'VARBINARY(8000)'. Check ANSI_WARNINGS option.... Seems as if the geometry type is not recognized. Is there a way around this?73Views0likes1CommentQuery on sys.dm_db_index_usage_stats slow
Hi, we discovered that queries on sys.dm_db_index_usage_stats are getting very slowly when the sql server is running for a longer time without restart. The execution time is up to 30 seconds for the following query: SELECT object_name(object_id) objectName, last_user_update FROM sys.dm_db_index_usage_stats WHERE database_id=db_id() We get the following query plan: The Actual Rows in LOGINDEXSTATS are about 2 million. We found 2 similiar cases by searching the internet: https://stackoverflow.com/questions/52165370/query-against-sys-tables-sys-dm-db-index-usage-stats-slow https://www.linkedin.com/pulse/sql-server-2014-object-dependencies-dmvdmf-slow-andrea-bruschetta We tested the workaround (UPDATE STATISTICS sys.*** WITH FULLSCAN;) without success. How can we increase performance without restarting the database? Regards Dominik103Views0likes1CommentClarification on redistributability of MSSQL JDBC Driver 8.4 components
I am reviewing the licensing terms for Microsoft JDBC Driver 8.4 for SQL Server, specifically for the native authentication library mssql-jdbc_auth-8.4.1.x64.dll and mssql-jdbc-8.4.1.jre8.jar. The license terms state that certain components are redistributable if they are listed in a REDIST.TXT file included with the software. However, in the JDBC Driver 8.4 package (downloaded from the official Microsoft site), we are unable to locate REDIST.TXT file. https://go.microsoft.com/fwlink/?linkid=2137600 Could someone please clarify the following: Are mssql-jdbc_auth-8.4.1.x64.dll and mssql-jdbc-8.4.1.jre8.jar considered redistributable under the Microsoft JDBC Driver 8.4 license terms? If so, is there official documentation or an alternative location where the redistributable components for this driver are listed? If one or both components are not redistributable, what is the recommended and supported approach for applications that require integrated authentication when deployed to customer environments? This clarification is important for us to ensure compliance with Microsoft licensing requirements when distributing our application. Thank you for your assistance.30Views0likes1Comment"ALTER DATABASE CURRENT SET ALLOW_SNAPSHOT_ISOLATION ON" does not finish for several hours
I have tried enabling snapshot isolation on several SQL Server instances (2017 and 2022 developer editions) in single user mode with the same huge DB (4 TB) but the command does not finish even after 6 hours... ALTER DATABASE CURRENT SET ALLOW_SNAPSHOT_ISOLATION ON Session is waiting on "ENABLE_VERSIONING" and I don't see any noticeable I/O activity on the Windows disk itself.99Views0likes1Comment- 77Views0likes2Comments
SQL Server not supported Windows 11 Home Version
I bought a new computer that came with Windows 11 Home. I am unable to install SQL Server 22 on W11. I would like to install Windows 10 that does support SQL server but I will void my support warranty doing so. I suspect I can upgrade to Windows 11 Pro but I am not sure that OS supports SQL Server. Any thoughts or advice would be helpful.2.6KViews0likes11CommentsCannot login to Analyses Services SQL 2025 Standard
Hello, I have installed SQL Server 2025 Standard Developer and no way to login to Analyses Services. I have latest version of SSMS (so drivers/libraries should not be an issue): I keep getting this: I've even tried with connection string with server name and instance - no luck. I know that after installing SQL 2025 Server Enterprise, there is no such problem with Analyses Services. Any help would be very appreciated. Best regards!112Views0likes3CommentsSQL Sever 2025 request with SQL connection
Hello, I installed SQL Server 2025 on a new VM, and I’m using a C# project to initialize my database based on a model (creating tables, foreign keys, default values, etc.). The process is extremely slow on SQL Server 2025: on my SQL Server 2022 environment, it takes about 30 minutes, but my first test on 2025 ran for over 4 hours. I’m connecting to SQL using a SQL authentication login (I tried both SA and a newly created account — same issue). I then tested using a Windows Authentication login, and surprisingly, the performance issue disappeared. Are there any known issues related to SQL authentication in SQL Server 2025?96Views0likes1CommentDatabase Level Collation Issues
Some background information. In the past we had a database where we didn't really care about collation at the database, table/column, functions and views. Though now we have a requirement due to a technology acquisition, requires SQL_Latin1_General_CP1_CI_AS. Microsoft seems to not have a simple method that guarantees changing the collation throughout the database on complex DBs with large amounts of tables, columns, functions, etc... specially with high dependencies, FKs and PKs and not affect any of the data (no moving the data is not simple). I have a command, where I stop all of the SQL services and any connections to the DB and use the following command line to change the collation to the one I specify. The issue is this command only works about 65% of the time and no clue to the why it fails the other 35%. The command used is: The parameter "-s" is necessary only if you have a named instance, remove the -s if no instance. sqlservr -m -T4022 -T3659 -s"SQL2019" -q"SQL_Latin1_General_CP1_CI_AS" or sqlservr -m -T4022 -T3659 -q"SQL_Latin1_General_CP1_CI_AS" When this does not work, I have a set of 6 SQL scripts to tear the database apart in a complex method to get them operational. Does anybody have any idea why the hit and miss on the command? Or a better method / way to fully change the DB collation?115Views0likes2CommentsStruggling with AI/ML and Python installation on MSSQL2025 GA
I swear that i did not have any issues installing AI/ML on CTP2.1, don't believe i tried it on RC0 or RC1, but gosh is installing python, R difficult on GA! wow ! Can Microsoft or some good soul please share exact steps on installing AI/ML on 2025GA w/ Python 3.10 and also please share all of the exact versions needed and the icals (permission setups), Also I'm confused with this virtual account vs domain account setups. Also can i use Python 3.13 or 3.14 ? or am i locked into 3.10 only ? Does any one have the exact steps on Windows 11 Pro for a SQL Server 2025 Enterprise Development environment ? I see this article but its so confusing : https://learn.microsoft.com/en-us/sql/machine-learning/install/sql-machine-learning-services-windows-install-sql-2022?view=sql-server-ver17&viewFallbackFrom=sql-server-ver15122Views0likes2CommentsMajor increase in transaction log backup size after upgrading to SQL Server 2022
Has anyone experienced a major increase in transaction log backup size after upgrading to SQL Server 2022? I recently upgraded one of our SQL Server environments from SQL Server 2019 to SQL Server 2022 (migrated databases to new SQL Server 2022 instances). After the upgrade, I noticed that transaction log backup sizes increased by 3× to 5×, even though: No application changes were made Workload and data change volume should be roughly the same Backup schedule remained the same (log backups every 30 minutes) Backup compression is default (same as before) The database is part of an Always On Availability Group running in synchronous commit mode Metrics I obeserved: Transaction log backup file size — increased 3× to 7× Log Write Throughput/sec — more than doubled Write Log Throughput — increased after upgrade Background Write Pages/sec — went up as well Log Bytes Flushed/sec Bytes Sent to Replica/sec — increased post-upgrade Backup/Restore Throughput/sec — increased from ~13 MB/sec → ~38 MB/sec Bytes Sent to Replica/sec (Always On counter) — increased New hardware is used — previous physical disk sector size was 4K, now it's 512 bytes Same Amount of RAM and CPU152Views0likes3CommentsSQL Ssrver Query Optimisation
Hi everyone, I am currently building a SQL report, but i need somebody to help me optimize my query. The query is working fine and pulling data, only if a selected a specific product (one or two), But when i need to pull data without that filter, the query is taking more time to show results, and i am not getting any data pulled. Here is my SQL Query : WITH WeighingData AS ( SELECT CASE TRANS_TYPE WHEN 2 THEN 'Dispatch' WHEN 1 THEN 'Receiving' WHEN 0 THEN 'Cancelled' END AS Transaction_Type, w.TIMESTAMP_1, w.TIMESTAMP_2, w.TICKETNO, w.HAULIER, w.IMAGE_1_1, w.IMAGE_1_2, w.IMAGE_2_1, w.IMAGE_2_2, w.OPERATOR_1 AS 'Operator ID1', w.OPERATOR_2 AS 'Operator ID2', xind1.FULL_NM AS 'Operator1_Fullname', xind2.FULL_NM AS 'Operator2_Fullname', w.PRODUCT, w.NET, w.VEHICLE_MANIFEST, w.DESPATCH_ORDER, w.WEIGHT_1, w.WEIGHT_2, w.BOL, ISNULL(d.DRIVER_NAME, N'') + ISNULL(d.DRIVER_SURNAME, N'') AS Driver_Fullname, v.LICENSEPLATE, st1.TERMINAL AS WBG1, st2.TERMINAL AS WBG2, p.NAME, ROW_NUMBER() OVER (PARTITION BY w.TICKETNO, w.VEHICLE_MANIFEST, w.DESPATCH_ORDER ORDER BY st1.TRANSIT_TIME DESC) AS RowNum FROM [Multiweigh].[Flexpoint].[WEIGHING] w INNER JOIN Flexpoint.PRODUCT p ON p.CODE = w.PRODUCT INNER JOIN Flexpoint.DRIVER d ON d.DRIVER_ID = w.DRIVER_ID LEFT OUTER JOIN Flexpoint.VEHICLE v ON v.LICENSEPLATE = w.VEHICLE LEFT JOIN Flexpoint.STAGING_TRANSIT st1 ON st1.PARAMETER_3 = w.VEHICLE_MANIFEST OR st1.PARAMETER_4 = w.DESPATCH_ORDER LEFT JOIN Flexpoint.STAGING_TRANSIT st2 ON st2.PARAMETER_3 = w.VEHICLE_MANIFEST OR st2.PARAMETER_4 = w.DESPATCH_ORDER LEFT JOIN Flexpoint.XINDIVIDUAL xind1 ON xind1.USERINDIV = w.OPERATOR_1 LEFT JOIN Flexpoint.XINDIVIDUAL xind2 ON xind2.USERINDIV = w.OPERATOR_2 INNER JOIN Flexpoint.XSTATION x ON x.STATION = w.STATION WHERE w.TIMESTAMP_1 BETWEEN '2024-08-04 00:00:00' AND '2024-08-04 23:59:59' AND w.PRODUCT IN (@Product_Name) AND w.TICKETNO LIKE @Ticket_No AND TRANS_TYPE IN (@Transaction_Type) ) SELECT *, CONCAT(CAST([Operator ID1] AS NVARCHAR(50)), ' - ', [Operator1_Fullname]) AS Operator1_Info, CONCAT(CAST([Operator ID2] AS NVARCHAR(50)), ' - ', [Operator2_Fullname]) AS Operator2_Info FROM WeighingData WHERE RowNum = 1 AND ([WBG1] LIKE '%weighb%' OR [WBG2] LIKE '%weighb%');Solved423Views0likes2CommentsDetermine a Value from a customized field in a select statement.
I am new. I am looking to determine the value of a customized field based on the value of a previous customized field. Here is what I have so far: select c.*, CASE WHEN c.[Case End Date] is null Then DATEDIFF(day,c.[Case Start Date], getdate()-1) ELSE DATEDIFF(day,c.[Case Start Date], c.[Case End Date]) END as [Days Open], CASE WHEN [DAYS OPEN] > 60 THEN 1 ELSE 0 END AS [60DAYSORMORE] From d_case as c The issue I have is that the system will not recognize my [Days Open] as a field. Msg 207, Level 16, State 1, Line 9 Invalid column name 'DAYS OPEN'. How can I make this work in Microsoft SQL Server Management Studio?118Views0likes2CommentsError Locating Server/Instance Specified - Tried everything I can find
Hello SQL experts, I am sort of at my wits end at this point and was hoping someone from the community could help me, I have referenced several discussions on this community and still have not found a solution that worked for my situation. I am trying to set up a automatic backup solution for a SQL Express Server so I can't use the SQL Agent to schedule a backup. Below is a batch script for sqlcmd I am trying to use to create the backup and as soon as I have it working, I plan on scheduling it as a task that will be executed weekly. I have also included the SQL query that works just fine when run from inside SSMS and creates the backup as expected. Batch file script: Echo off REM ================================================================ REM BackupDatabase.bat REM ================================================================ REM --- Configuration --- SET SERVER_NAME=.\FTVIEWX64_SRSS SET USER_NAME=xxxxxx SET PASSWORD=xxxxxx SET SQL_SCRIPT=C:\Users\Public\Documents\xxxx_BackupDatabase.sql REM --- display timestamp --- echo [%date% %time%] Starting database backup... REM --- Run SQLCMD --- sqlcmd -S %SERVER_NAME% -U %USER_NAME% -P %PASSWORD% -i "%SQL_SCRIPT%" IF %ERRORLEVEL% EQU 0 ( echo [%date% %time%] Backup completed successfully. ) ELSE ( echo [%date% %time%] Backup FAILED! Error code: %ERRORLEVEL% ) pause SQL Query being used: -- BackupDatabase.sql DECLARE @BackupFileName NVARCHAR(255); SET @BackupFileName = N'D:\SQLdbBackup\XXXX_' + CONVERT(VARCHAR(8), GETDATE(), 112) + N'.bak'; BACKUP DATABASE XXXX TO DISK = @BackupFileName WITH NOFORMAT, NOINIT, NAME = N'Full Backup of XXXX', SKIP, NOREWIND, NOUNLOAD, STATS = 10; GO When I run the batch file I get this in the sqlcmd window as an error code: The necessary services all seem to be running fine as you can see below: The sqlcmd version is as follows: SQL server version is as follows: Connections for the server are configured as follows: Any and all help would be greatly appreciated so I can resolve the issue and get regular backups scheduled for this server. Thanks and Kind Regards, DanSolved228Views0likes2Comments
Events
Recent Blogs
- 1 MIN READVersion 18.6 of the Microsoft ODBC Driver 18 for SQL Server has been released. Version 18.6 brings some minor changes and fixes to the driver. Added Support for the new vector data type (float3...Dec 17, 2025607Views1like4Comments
- This Document helps to troubleshoot or Resolve Replication performance related issues. Get information about “Topology Big Picture”:- Before you dive into solving any issue, you need to fully und...Dec 12, 2025511Views4likes0Comments