It’s been a while since I played bongos on the (virtual) heads of Microsoft’s documentation staff, but that wasn’t for lack of their continued striving to achieve The Worst Documentation Ability of All Time. It’s just that I wasn’t installing much Microsoft software; most of the installs were automatically done via Windows Update, which doesn’t always work but has no need of documentation. Unlike us humans.
But today I wanted to upgrade my Sql Server localdb version to 2022 (it had been 2019). Turns out that’s monumentally complicated because — you guessed it! — Microsoft’s documentation sucks.
When you search for install localdb 2022 you get directed to this page. It’s entitled Sql Server Express LocalDB, and contains links to the required installation media (which actually simply triggers the download of an installer).
But here’s where things get interesting. From the documentation:
Install LocalDB through the installation wizard or by using the
SqlLocalDB.msi
program. LocalDB is an option when installing SQL Server Express LocalDB. Select LocalDB on the Feature Selection/Shared Features page during installation.
From this you’d assume you’d be given a choice about installing LocalDB when the installer runs.
Wrong. Or if it’s present, it sure ain’t at all obvious.
I did six installs and uninstalls trying various things to get LocalDB installed. I actually did get the Express edition server installed and running, but it requires far too much overhead for my needs (I typically use LocalDB as an alternative to SqlLite3 when I want a more complete coverage of “standard” SQL functionality).
So where is this mythical SqlLocalDB.msi
program?
Turns out it’s buried in a directory created by the installer before it actually installs anything. The only way you can apparently install LocalDB is to grab the installer, let it do its initial setup, exit the installer (!!), and then navigate to SqlLocalDB.msi within the directory the installer created and execute it.
Mind-bogglingly idiotic, IMHO. Why not just maker a separate download of SqlLocalDB.msi available?
Dumb, dumb, dumb, dumb.
BTW, successfully executing SqlLocaLDB.msi may not get you across the finish line, because the localDB server may not start up when, say, Sql Server Management Studio calls for it.
I had to go to the command line, delete the LocalDB server instance and then create it. Here are the commands:
> sqllocaldb info
> sqllocaldb delete mssqllocaldb
> sqllocaldb create mssqllocaldb
The first line is included just so you can get the exact spelling of the server’s name (which in my case is mssqllocaldb).
Congratulations, Microsoft, on maintaining your reputation as one of the worst software documentation providers of all time.