卸载sql server 2008的错误解决

自己学习sql server,用win7 home basic安装了sql server 2008,后来看到版本出了 2008 r2,所以也安上了,其实主要使用管理工具查查数据。后来发现eclipse里可以通过架包达到相同的效果,而且eclipse是绿色的体积小。就决定卸载sql server相关的功能。从此不幸就开始了。

在控制面板中看到和sql server相关的功能要卸载,大部分都卸载成功。但最后几个(sql server 2008,sql server 2008 r2, sql server 2008 setup(English) )就总是提示出错。出错内容就是提示程序已经被卸载了,错误代码0x84B30002。重新运行卸载程序,提示是相同的。重新把sql server安装上,再卸载还是相同的提示。最后找到了下面的文章(从google上找到的,百度里的结果都是关于卸载数据库实例的,真不理解为什么搜索引擎会自作聪明把  sql server 看成是 sql server 实例)

http://sqlblog.com/blogs/aaron_bertrand/archive/2010/10/25/fun-with-software-uninstalling-sql-server-2008-r2-evaluation-edition.aspx

原文是英文的,作者和我一样点背。错误提示与我的完全相同,最后他是在注册表中找到相关信息,用批处理命令解决的。

在注册表位置

        HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

找到sql sever相关的信息。对应把命令中的GUID改成注册表中的。因为他和我安装都是sql server r2 64位,所以GUID相同,我就直接运行了。

命令如下:

rem SQL Server 2008 R2 Common Files
msiexec /x "{234F6B0D-10AE-4BB7-B2F3-E48D4861952D}"

rem SQL Server 2008 R2 Common Files
msiexec /x "{36F70DEE-1EBF-4707-AFA2-E035EEAEBAA1}"

rem SQL Server 2008 R2 Database Engine Shared
msiexec /x "{A2122A9C-A699-4365-ADF8-68FEAC125D61}"

rem Microsoft SQL Server 2008 Setup Support Files
msiexec /x "{C0C690C8-F335-4BA4-A2AD-675EAD1DFA90}"

rem SQL Server 2008 R2 Database Engine Shared
msiexec /x "{C942A025-A840-4BF2-8987-849C0DD44574}"

rem Microsoft SQL Server 2008 R2 (64-bit)
msiexec /x "{20E42995-BBE9-4697-8394-FCDC4338706B}"

rem Microsoft SQL Server 2008 R2 Setup (English)

msiexec /x "{C3E48238-5FA0-4C82-9509-36D47E371A29}"

注册表与命令对应关系如图


如果sql server的版本不同,GUID应该是不同的,所以用的时候要仔细看一下注册表。我执行完批处理命令后,再运行控制面板里的卸载,系统就提示程序已经被卸载,条目可以删除。相应的在开始菜单上双击sql server 安装中心(我的有中英文两份),系统就会提示相应文件已经清除,可以删除快捷方式了。

这样删除后控制面板和系统菜单都是干净的,并且对系统没有危险。但系统的program files下还是有sql server 的文件夹(如果是64位系统,program files(x86)也有)。这时删除这两个文件夹就可以了。删除时系统也不会提示文件被锁定,说明系统中的sql server已经安全删除。

当然卸载sql server一般步骤如下:

1、停止和sql server相关的服务。在管理工具 -  服务里停止。

2、卸载数据库实例(就是保存数据库数据和信息的主体),卸载前要备份数据信息,卸载后数据会被一起删除。

3、在控制面板卸载名字中带有sql server的程序。顺序上最好是先卸载组件,最后卸载主程序。

其它补充:

1、我遇到的这个错误提示代码其实作用不大,当数据库实例卸载出错,数据库升级(体验版Evaluation 升级到其它版本)出错时也会提示相同的错误代码。

2、在运行卸载程序时会提示

  在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。

   这个情况是要求在运行卸载程序前关闭机器上所有IE内核的浏览器,卸载程序就可以正常运行,网上也有说删除注册表中的一个键值,但相同位置我的机器上没有(win7 64位)。我是关了浏览器,卸载程序就正常了,从这点上我估计,所谓的IE与操作系统分离可能是个谎子,即使到了win7,IE还是和操作系统共生的,估计以后win7和XP有相同的结局(浏览器被攻击,系统也会崩溃)。

以前卸载visual studio也很痛苦,所以已经习惯微软这种莫名妙的问题。写下来让有相同问题的人不再头痛就好。

发布了43 篇原创文章 · 获赞 6 · 访问量 7万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章