SQLServer之分离数据库
分离数据库注意事项
要求具有 db_owner 固定数据库角色中的成员资格。
可以分离数据库的数据和事务日志文件,然后将它们重新附加到同一或其他 SQL Server实例。 如果要将数据库更改到同一计算机的不同 SQL Server 实例或要移动数据库,分离和附加数据库会很有用。
分离数据库是指将数据库从 SQL Server 实例中删除,但使数据库在其数据文件和事务日志文件中保持不变。 之后,就可以使用这些文件将数据库附加到任何 SQL Server实例,包括分离该数据库的服务器。
如果存在下列任何情况,则不能分离数据库:
已复制并发布数据库。 如果进行复制,则数据库必须是未发布的。 必须通过运行 sp_replicationdboption禁用发布后,才能分离数据库。
如果无法使用 sp_replicationdboption,可以通过运行 sp_removedbreplication删除复制。
数据库中存在数据库快照。
必须首先删除所有数据库快照,然后才能分离数据库。
不能分离或附加数据库快照。
该数据库正在某个数据库镜像会话中进行镜像。
除非终止该会话,否则无法分离该数据库。
数据库处于可疑状态。 无法分离可疑数据库;必须将数据库设为紧急模式,才能对其进行分离。
数据库为系统数据库。
分离只读数据库将会丢失有关差异备份的差异基准的信息。
分离数据库时生成的错误会阻止完全关闭数据库和重新生成事务日志。 收到错误消息后,请执行下列更正操作:
重新附加与数据库关联的所有文件,而不仅仅是主文件。
解决导致生成错误消息的问题。
再次分离数据库。
使用SSMS数据库工具分离数据库
1、连接服务器-》展开服务器-》选择数据库-》右键点击-》选择任务-》选择分离。
2、在分离数据库对话框-》右边要分离得数据库对话框-》数据库名称:列出要分离的数据库-》删除连接:断开与指定数据库的连接,不能分离连接为活动状态的数据库-》更新统计信息:默认情况下,分离操作将在分离数据库时保留过期的优化统计信息;若要更新现有的优化统计信息,请单击此复选框-》状态:显示以下状态之一: 就绪或 未就绪-》消息:当数据库进行了复制操作,则 状态为未就绪, 消息列将显示已复制数据库。如果数据库有一个或多个活动连接,则状态为未就绪,消息列显示<number_of_active_connections> 个活动连接,例如:1 个活动连接。 在分离数据库之前,需要通过选择 删除连接断开所有活动连接。
3、数据库分离结果。
使用T-SQL脚本分离数据库
语法
--声明数据库引用
use other_database_name;
go --语法
exec sp_detach_db [@dbname=] 'database_name' [,[@skipchecks= ] 'skipchecks'] [,[@keepfulltextindexfile=] 'KeepFulltextIndexFile' ];
go
语法注释
--语法示例
--other_database_name
--声明当前使用的数据库不是要分离的数据库
--[@dbname=]'database_name'
--要分离的数据库的名称。database_name是sysname值,默认值为NULL。
--[@skipchecks =]'skipchecks'
--指定跳过还是运行update statistic。同时将skipchecks是nvarchar(10)值,默认值为NULL。
--若要跳过更新统计信息,请指定,则返回 true。 若要显式运行更新统计信息,请指定false。
--默认情况下,执行update statistic可更新有关表和索引中的数据的信息。 对于要移动到只读介质的数据库,执行 UPDATE STATISTICS 非常有用。
--[@keepfulltextindexfile=] 'KeepFulltextIndexFile'
--指定在数据库分离操作过程中不会删除与所分离的数据库关联的全文索引文件。
--KeepFulltextIndexFile是nvarchar(10)值,该值具有默认值为true。
--如果KeepFulltextIndexFile是false、 与数据库关联的全文索引的所有文件和全文索引的元数据被删除,除非数据库是只读的。
--如果为NULL,则返回true,全文索引相关的元数据保留。
--@keepfulltextindexfile中的未来版本将删除参数SQL Server。请不要在新的开发工作中使用此参数,并尽快修改当前仍在使用此参数的应用程序。
示例
--声明数据库引用
use master;
go --进行数据库分离
--方式一
--exec sp_detach_db @dbname='testss'
--,@skipchecks='true'
--,@keepfulltextindexfile='true'; --方式二
exec sp_detach_db 'testss'
,'true'
,'true';
go
示例结果:T-SQL脚本执行完毕需要在对象资源管理器刷新才能看到分离结果。
SQLServer之分离数据库的更多相关文章
- sqlserver sql语句附加 分离数据库
当使用 sp_attach_db 系统存储过程附加数据库时- - Tag: 当使用 sp_attach_db 系统存储过程附加数据库时 //附加数据库 sp_attach_db 当使用 sp_atta ...
- 【SqlServer】利用sql语句附加,分离数据库-----转载
利用sqlserver内置的存储过程sp_attach_db和sp_detach_db附加 exec sp_attach_db @dbname=N'数据库名',@filename1=N'.mdf的文件 ...
- SQLServer之附加数据库
附加数据库注意事项 必须首先分离数据库. 尝试附加未分离的数据库将返回错误. 附加数据库时,所有数据文件(MDF 文件和 LDF 文件)都必须可用. 如果任何数据文件的路径不同于首次创建数据库或上次附 ...
- sqlserver 2008 还原数据库时,提示有用户正在使用,无法取得使用占有权
sqlserver 2008 还原数据库时,提示有用户正在使用,无法取得使用占有权 这个时候,只需要把数据库分离出去,再附加,然后还原即可 分离数据库的时候能看到有几个数据连接
- MS SQLServer 批量附加数据库 分类: SQL Server 数据库 2015-07-13 11:12 30人阅读 评论(0) 收藏
************************************************************ * 标题:MS SQLServer 批量附加数据库 * 说明:请根据下面的注释 ...
- sql 2012日志文件频繁出现:svchost (4892) 数据库引擎已分离数据库(1、C:\Windows\system32\LogFiles\Sum\Current.mdb)
svchost (4892) 数据库引擎已分离数据库(1.C:\Windows\system32\LogFiles\Sum\Current.mdb).(时间=0 秒) 内部计时序列: [1] 0.00 ...
- 知方可补不足~SqlServer自动备份数据库及清理备份文件
回到目录 对于SQLSERVER这个关系型数据库来说,为了保持数据的安全,备份是必须的,当你的一个误操作导致数据丢失,这可能是灾难性的,是不被允许发生的,这时,我们必须要做好定期的备份工作,如我们可以 ...
- Sqlserver列出所有数据库名,表名,字段名
Sqlserver列出所有数据库名,表名,字段名 1.获取所有数据库名: ? 1 SELECT Name FROM Master..SysDatabases ORDER BY Name 注 ...
- 如何分离数据库 (SQL Server Management Studio)
在 SQL Server Management Studio 对象资源管理器中,连接到 SQL Server 数据库引擎的实例上,再展开该实例. 展开“数据库”,并选择要分离的用户数据库的名称. 分离 ...
随机推荐
- @component @bean区别
from: http://stackoverflow.com/questions/10604298/spring-component-versus-bean http://stackoverflow. ...
- Tiny4412之重力感应器驱动
一:Tiny4412 裸板重力感应驱动编写 整个编写过程大概分为如下几步: (1)在底板上找到重力感应器的所在位置,找到芯片型号(我用的板子上重力感应器芯片型号为:MMA7660FC) (2)通过型号 ...
- 3.python元类编程
1.1.propety动态属性 在面向对象编程中,我们一般把名词性的东西映射成属性,动词性的东西映射成方法.在python中他们对应的分别是属性self.xxx和类方法.但有时我们需要的属性需要根据 ...
- SpringMvc 这篇文章写得不错 多多学习2017.6.29
http://www.cnblogs.com/bigdataZJ/p/springmvc1.html 博客园链接
- 13.app后端为什么要用到消息队列
很多没有实际项目经验的小伙伴,对消息队列系统非常陌生,看着很多架构的介绍中,都提到消息队列.但是,不知道为什么要用消息队列?什么是消息队列?常见的消息队列产品有哪些? 通过阅读本文,帮你解开以上的疑惑 ...
- Android 手势检测实战 打造支持缩放平移的图片预览效果(下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39480503,本文出自:[张鸿洋的博客] 上一篇已经带大家实现了自由的放大缩小图 ...
- CentOS6.5 安装Python2.7后, yum出现“No module named yum”错误
安装如下方法安装python2.7: yum install –y python27 python27-devel python-docutils cd /usr/bin/ rm -rf python ...
- MySQL语句整理(一)
--01 mysql 数据库的操作 -- 链接数据库 mysql -uroot -pmysql -- 不显示密码 ***** mysql -uroot ...
- file.go
// return int64(f.offset), errors.New("offset > file.size") //}else { // ...
- NOIP2017 酱油送命记
Day0 一天,在机房,有点考前的紧张和慌张,打了一下午的模板,立了3个不该立的flag... Day1 拿到试题,万分紧张,T1是数论啊 害怕,一直以为D2T1才是数论,仔细观察却发现(flag1: ...