如何删除sqlserver数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何删除sqlserver数据库相关的知识,希望对你有一定的参考价值。

删除数据库用drop database 语句删除或在图形界面删除都可。
如,删除一个叫test的数据库,语句删除方法如下:

1

drop database test;

图形界面:

1、进入SQL Server Management Studio。
2、左边列表找到“数据库”。

3、在要删除的数据库上点鼠标右键,选择“删除”即可。
参考技术A DROP DATABASE 数据库名称

如何删除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数据库的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2008 数据库误删除数据的恢复

SQL Server里如何删除一个数据库?

SQL Server 2008 清空删除日志文件

sql server 2008 删除数据库中所有表的数据

如何删除具有数据库所有者权限的 SQL Server 用户

如何删除SQL SERVER中的日志文件