How to fix Error 6545 on Windows Server 2025 / Windows 11

Troubleshooting Guide: SQL Server Error 6545 — “Enabling of Execution Statistics SET Options Not Allowed Within CLR Procedure or Function”

Why This Error Happens

This error occurs because SQL Server’s CLR integration does not permit changes to execution statistics SET options (such as STATISTICS XML, STATISTICS PROFILE, or STATISTICS IO) to be toggled from inside managed code running in a CLR stored procedure, function, trigger, or user-defined type. These SET options are session-level diagnostic switches that SQL Server manages internally through the Tabular Data Stream (TDS) protocol, and the CLR execution context runs in a sandboxed environment that does not have authority to alter them. Essentially, the error is a design restriction rather than a configuration failure — the managed code is attempting an operation that is architecturally off-limits within the SQLCLR hosting environment.

Step-by-Step Resolution Guide

Step 1: Identify the Offending CLR Code

  • Review the assembly source code deployed to SQL Server 2025 and search for any SqlCommand or ADO.NET calls that issue SET STATISTICS XML ON, SET STATISTICS PROFILE ON, or SET STATISTICS IO ON from within the managed procedure/function body.
  • Use sys.assembly_modules and sys.assemblies to map the failing object back to its source .dll and corresponding .cs or .vb file.
  • Check Application Event Viewer (Windows Logs > Application) for Event ID 6545 correlated with the SPID and timestamp to pinpoint the exact call stack.

Step 2: Remove or Relocate the SET Statement

  • Delete the SET STATISTICS ... command from inside the CLR procedure/function code entirely, since it cannot execute in that context.
  • If statistics capture is required for performance analysis, move the SET STATISTICS XML ON command to the calling T-SQL batch that invokes the CLR object, not inside the managed code itself.
  • Recompile the assembly using Visual Studio or csc.exe, then redeploy via CREATE ASSEMBLY or ALTER ASSEMBLY in SSMS.

Step 3: Adjust CLR Integration and Permission Settings

  • Open SQL Server Management Studio (SSMS) and run:
  sp_configure 'clr enabled', 1;
  RECONFIGURE;
  • Verify the assembly’s PERMISSION_SET is not set to UNSAFE unnecessarily — use SAFE or EXTERNAL_ACCESS unless cross-API access is explicitly required:
  ALTER ASSEMBLY YourAssemblyName WITH PERMISSION_SET = SAFE;
  • Restart the SQL Server service via services.msc on Windows Server 2025 or Windows 11 to ensure the CLR host environment reloads cleanly after permission changes.

Step 4: Test the Corrected Procedure

  • Deploy the updated assembly to a non-production instance first.
  • Execute the CLR stored procedure/function manually in SSMS using EXEC dbo.YourCLRProcedure; and confirm Error 6545 no longer appears in the Messages tab or Event Viewer.

Alternative or Verification Steps

  • Run SET STATISTICS XML ON; directly in the SSMS query window before calling the CLR procedure (not inside the CLR code) to confirm execution statistics now render correctly without triggering the error.
  • If the error persists, drop and recreate the assembly entirely using DROP ASSEMBLY followed by a fresh CREATE ASSEMBLY to rule out a corrupted or stale metadata registration in sys.assemblies.