How to make Sharepoint server use ODBC 17 instead of ODBC 11

Greg Booth 1,416 Reputation points
2025-11-14T08:49:16.8666667+00:00

We are running Sharepoint server 2016 on a windows server. It has Microsoft ODBC driver 11 and 17 installed. We want to check if ODBC 11 is being used by Sharepoint and if so make Sharepoint use ODBC 17 instead. How do we do that ? ODBC 11 was installed as a prerequisite to installing Sharepoint server.

Microsoft 365 and Office | SharePoint Server | For business
0 comments No comments
{count} vote

Answer accepted by question author
  1. Steven-N 14,835 Reputation points Microsoft External Staff Moderator
    2025-11-14T10:58:33.5333333+00:00

    Hi Greg Booth

    Thank you for reaching out to Microsoft Q&A forum

    If you want to check if ODBC 11 is being used by Sharepoint, as stated in Get-OdbcDriver (Wdac) | Microsoft Learn, you can use this cmdlet to check:

    $processes = Get-Process -Name w3wp, OWSTIMER  # Add other SharePoint process names as needed
    foreach ($proc in $processes) {
        $modules = $proc.Modules | Where-Object {$_.ModuleName -eq "msodbcsql11.dll"}
        if ($modules) {
            Write-Output "ODBC 11 DLL loaded in process: $($proc.Name) (ID: $($proc.Id))"
        }
    }
    
    

    Regarding your concern: How to make Sharepoint server use ODBC 17 instead of ODBC 11

    As far as I know, Microsoft ODBC drivers for SQL Server (versions 11 and 17) can coexist on the same system. SharePoint 2016 uses ODBC Driver 11 for optional features like BCS, Excel Services, and PerformancePoint Services. That said, to upgrade to ODBC Driver 17, you have to manual changes to DSNs and connection strings are required. Due to limitations in the testing environment, the approach I proposed may not be fully definitive, but you can try it and share the results with me

    Step 1: Preparation

    1. Install ODBC Driver 17: Download and install the ODBC Driver 17 for SQL Server from Microsoft. Install on all SharePoint servers (no reboot needed, check logs for confirmation).
    2. Open ODBC Data Source Administrator (64-bit) and check if ODBC Driver 17 appears alongside version 11.
    3. Backup Configurations: Export ODBC registry keys (e.g., HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI) for rollback purposes.

    Step 2: Update ODBC Data Source Names (DSNs)

    1. Open ODBC Data Source Administrator (64-bit) and go to the System DSN tab.
    2. Update DSNs Using ODBC Driver 11:
      • Identify DSNs using ODBC Driver 11 for SQL Server.
      • For each, create a new DSN with ODBC Driver 17 and replicate settings.
      • Test the new DSN and delete/rename the old DSN.
    3. Update SharePoint References: Edit external content types to use the new DSN. Update connections in Excel workbooks, then republish to SharePoint and use Dashboard Designer to update ODBC data sources.

    Step 4: Verification and Testing

    1. Monitor DLL Usage:
      • Use Process Monitor (ProcMon) to check for msodbcsql17.dll activity during SharePoint operations (e.g., BCS or Excel Services refresh). Alternatively, run this PowerShell to verify DLL loading:
             $processes = Get-Process -Name w3wp, OWSTIMERforeach ($proc in $processes) {
                 $modules = $proc.Modules | Where-Object {$_.ModuleName -eq "msodbcsql17.dll"}
                 if ($modules) {
                     Write-Output "ODBC 17 DLL loaded in process: $($proc.Name) (ID: $($proc.Id))"
                 }
             }
        
    2. Functional Testing: Test affected features such as BCS, Excel Services, and PerformancePoint Services. Check SharePoint logs and Event Viewer for errors.
    3. Monitor SQL Server: On SQL Server, query sys.dm_exec_sessions for connections using the updated driver:
         SELECT program_name, client_interface_nameFROM sys.dm_exec_sessionsWHERE program_name LIKE '%ODBC%' 
      

    Step 5: Optional Cleanup

    If all tests pass and ODBC 11 is no longer in use, uninstall it via Settings > Apps & Features. Only uninstall after thorough testing.

    Hope that helps clarify it, for any further concern, kindly let me know

    Best regards


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".     

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.


0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.