"SqlLocalDB versions" runs into error "Windows API call "RegGetValueW" returned error code: 0."


使用SqlLocalDB Utility查看SqlLocalDB的版本,返回以下錯誤:

C:\>SqlLocalDB versions Windows API call "RegGetValueW" returned error code: 0.

 

搜了一下,發現是注冊表配置問題(MSDN Community sqlexpress Forums),本機安裝的SqlLocalDB在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13E.LOCALDB\MSSQLServer\CurrentVersion下有個CurrentVersion,其值為13.1.4001.0。

但是在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Installed Versions,下面的文件夾確是“13.0”,修改成"13.1"后問題解決。

C:\>SqlLocalDB versions Microsoft SQL Server 2016 (13.1.4001.0)

 

雖然到這里問題就已經解決了,但是在查看SQL LocalDB安裝目錄下的啟動程序 (C:\Program Files\Microsoft SQL Server\130\LocalDB\Binn\sqlservr.exe) 以后,我又困惑了。右鍵, 發現屬性\詳細信息里的版本號正是13.0.4001.0,也就是說上面的注冊表部分的原始值是正確的。那么問題出在哪里呢?

詳細檢查注冊表並相應修改驗證后發現,SQLLocalDB命令行工具 (C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe) 使用的注冊表項在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13E.LOCALDB 目錄下,這個目錄下使用的值是13.1.4001.0,不清楚是更新什么還是微軟自己的安裝程序弄錯了,總之就是和實際的值對不上。所以更正確的做法是改正這個目錄下的所有的13.1.4001.0,雖然這樣做要改的地方更多一些。

C:\>SqlLocalDB versions
Microsoft SQL Server 2016 (13.0.4001.0)

 

更多參考:How to connect and use Microsoft SQL Server Express LocalDB


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM