自己学习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 实例)
原文是英文的,作者和我一样点背。错误提示与我的完全相同,最后他是在注册表中找到相关信息,用批处理命令解决的。
在注册表位置
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也很痛苦,所以已经习惯微软这种莫名妙的问题。写下来让有相同问题的人不再头痛就好。