如何删除sqlserver数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除sqlserver数据库相关的知识,希望对你有一定的参考价值。
删除sqlserver数据库方法:
步骤1: 关闭SQL SERVER的所有服务。
步骤2: 若要开始卸载过程,请从“开始”菜单单击“控制面板”,然后双击“程序和功能”。选择要卸载的 SQL Server 组件,然后单击“卸载”。
步骤3: 此时将启动 SQL Server 安装向导,点击Remove按钮,即可开始卸载SQL SERVER 2008了。
步骤4: 如图所示,点击下一步(Next)即可,如果在服务器上有多个实例,你可以在下拉列表中选择需要卸载的数据库实例。
步骤5: 选择要卸载的组件。一般默认选择全部。这样你就可以删除所有组件。
步骤6: 点击下一步。
步骤7: 在“准备卸载”页上查看要卸载的组件和功能的列表。接下来“安装进度”页将显示安装状态。最后在“完成安装”页上单击“关闭”退出安装向导。
步骤8: 删除成功,重复步骤 2-7,直到删除所有 SQL Server 2008 组件。
执行上面步骤后,你需要在控制面板查看是否还有没有删除的SQL SERVER组件,然后手工卸载下面一些目录:
C:\\Program Files\\Microsoft SQL Server
C:\\Program Files (x86)\\Microsoft SQL Server
然后是清除注册表信息
(1) 删除以下注册表子项:
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSSQLServer
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\ Microsoft SQL Server
(在我的操作中,注册表中没有看到下面信息,应该是卸载时,已经被清除了)
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\MSSQLServer
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\SQLSERVER AGENT
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\SQLBrowser
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\MSSQLServerADHelper100
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\MSSQLServerOLAPService
在系统为WIN7的SQL SERVER 2008下,我们还可以看到下面一些注册表的信息,如果你看到它的存在,也要清除这些注册表信息。
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server 2005 Redist
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server 2008 Redist
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server Compact Edition
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SQL Server Native Client 10.0
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft Sync Framework
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft Sync Services
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft Sync Services ADO
(2) 如果有安装Microsoft Search 服务,还需要删除:
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Search
(3) 卸载Microsoft 全文查询(没有安装则不需要),还需要删除:
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\MSFTPSVC
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\MSSCNTRS
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\MSSEARCH HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\MSSGATHERVER
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\MSSGTHRSVC
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\MSSINDEX
(4)依次查找 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager, 找到“PendingFileRenameOperations”值,并删除其中所有数据,这个选项不删除也可以,但是你重新安装时,进入安装界面就会出现SQL错误提示: 从前的安装程序操作使安装程序操作挂起,需要重新启动计算机 。
解决方法1:点击 开始 运行输入:regedit 打开注册表找到如下目录HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager删除PendingFileRenameOperations
解决方法2:如果按照方法1,没有找到相关注册表信息,那么有可能是mscorsvw.exe进程调用Invoke所致,解决办法:打开任务管理器,结束带哦这个进程即可。
(5)如果要卸载的是命名实例,则在相应的注册表键的MSSQLServer,SQLSERVERAGENT和MSSQLServerADHelper后加上“/”和相应的实例名。
参考技术A 以sqlserver2008r2为例:1)先在系统的控制面板“添加/删除程序”里卸载SQL Server2008r2 组件,先卸载"Microsoft SQL Server2008r2"这一组件(按照提供的进程),卸载完后刷新控制面板,"Microsoft SQL Server2008r2"仍存在暂时不理睬,依次卸载其他的SQL Server 2008r2组件;
2)打开注册表(开始——运行——regedit——确定) 然后找到下面的文件夹,删除掉:
HKEY_CURRENT_USER\ Software\ Microsoft\ Microsoft SQL Server 、
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Microsoft SQL Server(这个地方注意了,在这个附 近,有可能有你安装的部分组件的注册,名字前缀都是Microsoft SQL ,一并删除了) 、
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ MSSQLServer 、
这里还有一个,不过不是删除文件夹,而只是删除其中PendingFileRenameOperat ions一项:
HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperat ions
3)打开运行Total Uninstall 6,找到Microsoft SQL Server2008r2分析后卸载掉。
4)打开运行Windows Install Clean Up,找到有关SQL Server 2008r2的服务(只要有SQL Server 2008r2 字眼就选择),并“REMOVE”。
5)找到默认安装路径C:\Program Files\Microsoft SQL文件夹并使用管理员权限删除掉,此时控制面板里的"Microsoft SQL Server2008r2"也没了踪迹,这样重新启动电脑便完成了对SQL Server2008r2 的完美卸载。
如何删除SqlServer分区函数
我们都知道,SQL server2008R2企业版以及一些其它的版本支持分区函数,当你在这些数据库备份后想在一些不支持分区函数的数据库做还原时,就会失败。
下面我们来解决这个问题。
1.备份数据库!备份数据库!备份数据库! (对数据库动任何刀子前先备份)
2.删除分区函数所涉及的表,因为在建表的时候我们做了关联,所以删除主要是切断这个关联以及相关的文件。
3.删除关联、删除分区文件 sql语句如下
select * from sys.partition_schemes 查询分区
select * from sys.partition_range_values 查询分区范围
select * from sys.partition_functions 查询分区函数
DROP PARTITION SCHEME 查询分区.[name]
DROP PARTITION FUNCTION 查询分区函数.[name]
执行Drop语句后再做上面的查询应该已经查不到任何内容。
删除分区文件
ALTER DATABASE [DataBase] REMOVE FILE [分区文件名];
ALTER DATABASE [DataBase] REMOVE FILEGROUP [分区文件组名]
名称可以通过对应库的创建脚本查看
.
.
.
可能有多个这样的分区和分区组手动一一执行吧
到这里所有的删除就已经完成了,备份,还原,成功!
这里再多分享一个我碰到的问题,上面的方法在高版本(sqlserver2016)下已经没有问题,但是碰到需要还原的数据库为低版本有兼容性问题,这个问题碰到过很多次,我的方法是在高版本下生成创建数据库的脚本和创建数据库数据的脚本,这里脚本的内容可能比较大会造成打不开的情况。所以就用远程创建一个链接服务器,将数据倒插入低版本数据库。有余表的数量较多,不可能每一个都手动来,这里提供一个脚本来生成这些插入语句。
declare @name nvarchar(50)
declare @sqltable table (sqlstr nvarchar(2000)) --插入语句的临时表
declare @para nvarchar(1000) --表列名串,因为SET IDENTITY_INSERT 语句需要有列名的情况下才可以使用,这里需要将列名拼接起来
DECLARE MyCursor CURSOR
FOR SELECT Name FROM SysObjects Where XType=‘U‘--查询库里的所有表然后遍历
--打开一个游标
OPEN MyCursor
--匹配第一条记录
FETCH NEXT FROM MyCursor INTO @name
WHILE @@FETCH_STATUS =0
BEGIN
select @para = stuff((select ‘,‘+ltrim(name) from SYSCOLUMNS where ID=OBJECT_ID(@name )
for xml path(‘‘)),1,1,‘‘)
if exists (Select 1 From sysColumns Where id=object_id(@name) and Status=128)--判断是否存在标识键(一般是ID自增)
insert into @sqltable values(
‘SET IDENTITY_INSERT ‘[email protected]+‘ ON ‘+‘insert into ‘[email protected]+‘(‘[email protected]+‘) select ‘[email protected]+‘ from [链接服务器的库]..‘[email protected]+‘ SET IDENTITY_INSERT ‘[email protected]+‘ OFF‘
)
else
insert into @sqltable values (‘insert into ‘[email protected] + ‘ select * from [链接服务器的库]..‘[email protected])
FETCH NEXT FROM MyCursor INTO @name
END
--关闭游标
CLOSE MyCursor
--释放资源
DEALLOCATE MyCursor
select * from @sqltable
将查询结果全部复制出来遍可以执行了。
以上是关于如何删除sqlserver数据库的主要内容,如果未能解决你的问题,请参考以下文章