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
- 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).
- Open ODBC Data Source Administrator (64-bit) and check if ODBC Driver 17 appears alongside version 11.
- 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)
- Open ODBC Data Source Administrator (64-bit) and go to the System DSN tab.
- 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.
- 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
- Monitor DLL Usage:
- Use Process Monitor (ProcMon) to check for
msodbcsql17.dllactivity 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))" } }
- Use Process Monitor (ProcMon) to check for
- Functional Testing: Test affected features such as BCS, Excel Services, and PerformancePoint Services. Check SharePoint logs and Event Viewer for errors.
- Monitor SQL Server: On SQL Server, query
sys.dm_exec_sessionsfor 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.