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

Troubleshooting Guide: Error 11107 – “The Provider Could Not Support a Row Lookup Position”

Why This Error Happens

This error typically occurs when a distributed query or linked server operation uses a cursor-based row lookup (such as IRowsetLocate or bookmark-based positioning) that the underlying OLE DB provider does not support. It is commonly triggered by outdated or mismatched OLE DB drivers (e.g., legacy providers like SQLNCLI or third-party ODBC-to-OLE DB bridges) that lack full support for server-side cursors required by SQL Server 2025’s query engine. Corrupted provider registration in the Windows Registry or an incompatible driver version installed on Windows Server 2025 can also prevent the provider from fulfilling the lookup request.

Step-by-Step Resolution Guide

Step 1: Identify and Update the OLE DB Provider

  • Open SQL Server Management Studio (SSMS) and navigate to Server Objects > Linked Servers > Providers.
  • Check which provider is flagged (common culprits: MSDASQL, SQLNCLI11, or third-party providers like Oracle’s OraOLEDB).
  • Download and install the latest provider version compatible with SQL Server 2025 and Windows Server 2025/Windows 11 from the vendor’s official site.
  • Restart the SQL Server service after installation: net stop MSSQLSERVER && net start MSSQLSERVER.

Step 2: Adjust Provider Options to Disable Unsupported Features

  • In SSMS, right-click the provider under Linked Servers > Providers, select Properties.
  • Uncheck “Nested Queries” and “Supports Like” if the provider does not fully support cursor positioning.
  • Enable “Allow InProcess” only if the provider is known to be thread-safe and stable in-process.
  • Apply changes and restart the SQL Server service to reload provider settings.

Step 3: Rewrite the Query to Avoid Server-Side Cursors

  • Replace FOR UPDATE or scrollable cursor logic in your distributed query with a SELECT into a temporary table or table variable.
  • Use OPENQUERY() instead of four-part linked server naming (Server.Database.Schema.Table) to force pass-through execution and avoid local cursor emulation.
  • Example: SELECT * INTO #temp FROM OPENQUERY(LinkedServerName, 'SELECT * FROM RemoteTable').

Step 4: Repair or Re-register the Provider DLL

  • Open an elevated Command Prompt on Windows Server 2025.
  • Locate the provider DLL (commonly in C:\Windows\System32\ or C:\Program Files\Common Files\System\Ole DB\).
  • Re-register the DLL using: regsvr32 /u "<path_to_dll>" followed by regsvr32 "<path_to_dll>".
  • Verify registry integrity under HKEY_CLASSES_ROOT\CLSID\{Provider-GUID} to ensure no corrupted entries remain.

Alternative or Verification Steps

  • Run the original distributed query again in SSMS and confirm Error 11107 no longer appears in the Messages tab or Windows Event Viewer (Event ID 11107 under Application Logs).
  • If the error persists, bypass the OLE DB provider entirely by migrating the linked server connection to a native ODBC Driver 18 for SQL Server connection, which has broader compatibility with row lookup operations in SQL Server 2025.