sqlserver 分离和附加

Posted 鱼日文弓虽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver 分离和附加相关的知识,希望对你有一定的参考价值。

1、何为数据库分离和附加

数据库分离:

分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。

数据库附加:

分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。

2、数据库分离附加的应用场景

a)、通过分离和附加来移动数据库或者将数据库更改到同一计算机的不同SQL server实例;
b)、通过分离和附加来升级数据库,比如将数据库由SQL server 2005升级到SQL server 2012的时候;

3、用T—sql语句进行分离附加数据库

--分离数据库 xxxDB为要分离的数据库名
USE [master]
GO
ALTER DATABASE [xxxDB] SET  SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
USE [master]
GO
EXEC master.dbo.sp_detach_db @dbname = NxxxDB, @skipchecks = false
GO
--附加数据库,其中E:\xxx\xxxDB.mdf为数据库数据文件路径,E:\xxx\xxxDB_log.ldf为数据库日志文件路径
-- 其中 xxxxxxDB可以更改名称(附加之后的数据库名)
USE [master]
GO
CREATE DATABASE [xxxxxxDB] ON 
( FILENAME = NE:\xxx\xxxDB.mdf ),
( FILENAME = NE:\xxx\xxxDB_log.ldf )
 FOR ATTACH
GO

其中分离数据库过程可能涉及的地方解释(使用ssms图形工具操作时):

删除连接:断开与指定数据库的连接,因为不能分离连接为活动状态的数据库。
更新统计信息:默认情况下,分离操作将在分离数据库时保留过期的优化统计信息;若要更新现有的优化统计信息,请单击此复选框。
保留全文目录:默认情况下,分离操作保留所有与数据库关联的全文目录。 若要删除全文目录,请清除“保留全文目录”复选框。 只有从 SQL Server 2005 升级数据库时,才会显示此选项

以上是关于sqlserver 分离和附加的主要内容,如果未能解决你的问题,请参考以下文章

android如何跨片段分离/附加保留视图状态

sqlserver2005附加和分离数据库突然报错,以前用的好好的

sql server 2008 日志文件删除后怎么附加

sqlserver 分离 附加 备份 数据库

SQLServer之分离数据库

OnDetach/onAttach 片段重新创建片段活动