The Issue
I recently had to install a second instance of SQL Server onto a box that already had a named instance installed.
During the installation process I hit a blocker on the “Check Files in Use check”, where it warned that both:
- Microsoft ODBC Driver 17 for SQL Server
- Microsoft OLE DB Driver for SQL Server
Had components missing?
The full error messages below:
Microsoft ODBC Driver 17 for SQL Server
Checks for ODBC Driver installation, and if installed, checks if all driver components required for SQL Server are currently enabled.
Failed SQL setup cannot continue because one or more components in the 'Microsoft ODBC Driver 17 for SQL Server' installation are missing on this system. To fix the issue go to Add or Remove Programs, select 'Microsoft ODBC Driver 17 for SQL Server', and either select Modify to install any components, or Remove to uninstall the 'Microsoft ODBC Driver 17 for SQL Server' program. Once fixed rerun the SQL Setup.
Microsoft OLE DB Driver for SQL Server
Checks for OLE DB Driver installation, and if installed, if all driver components required for SQL Server are currently enabled.
Failed SQL setup cannot continue because one or more components in the 'Microsoft OLE DB Driver for SQL Server' installation are missing on this system. To fix the issue go to Add or Remove Programs, select 'Microsoft OLE DB Driver for SQL Server', and either select Modify to install any components, or Remove to uninstall the 'Microsoft OLE DB Driver for SQL Server' program. Once fixed rerun the SQL Setup.
Trouble shooting
So how to fix?
I opened the Control Panel / Uninstall a program, and found “Microsoft OLE DB Driver for SQL Server” in the list and chose “Change”, but when I did it could not find the installation media, it was searching for “msodbcsql.msi”?
So I had the SQL Server installation .iso mounted so I searched the drive but and I found the msi, so I pointed the “Change” to the location of the .msi and it failed!. It complained that the version installed was higher than the version installed.
Patches
I knew that one of the instances had been patched to the latest security patches, so I went and downloaded the latest patch from Microsoft for the SQL Server – SQLServer2022-KB5038325-x64.exe
When you run the patch, it first extracts itself to the root of a drive with a random folder name. If you look quickly as it extracts you can see the Drive letter. Mine was e:\.
I went and searched for the .msi files and found them in a folder.
- MSODBCSQL.MSI
- MSOLEDBSQL.MSI
I copied these out to a different folder for use in the next step.
Modify Software
Run one of the .msi files and choose Modify.
When the installer loaded there are two components:
- Client Components
- ODBC Driver for SQL Server SDK
In my case the SDK was NOT installed.
- Choose to install both components
- Do this for both .msi files ODBC and OLEDB
Install
Rerun the health checks in the SQL Server installer and it will now pass.
The problem was the ODBC and OLE DB drivers required the SDK features to be installed to pass the sql server checks.