SQLServer之分离数据库

栏目: 数据库 · 发布时间: 5年前

内容简介:要求具有 db_owner 固定数据库角色中的成员资格。可以分离数据库的数据和事务日志文件,然后将它们重新附加到同一或其他 SQL Server实例。 如果要将数据库更改到同一计算机的不同 SQL Server 实例或要移动数据库,分离和附加数据库会很有用。分离数据库是指将数据库从 SQL Server 实例中删除,但使数据库在其数据文件和事务日志文件中保持不变。 之后,就可以使用这些文件将数据库附加到任何 SQL Server实例,包括分离该数据库的服务器。

分离数据库注意事项

要求具有 db_owner 固定数据库角色中的成员资格。

可以分离数据库的数据和事务日志文件,然后将它们重新附加到同一或其他 SQL Server实例。 如果要将数据库更改到同一计算机的不同 SQL Server 实例或要移动数据库,分离和附加数据库会很有用。

分离数据库是指将数据库从 SQL Server 实例中删除,但使数据库在其数据文件和事务日志文件中保持不变。 之后,就可以使用这些文件将数据库附加到任何 SQL Server实例,包括分离该数据库的服务器。

如果存在下列任何情况,则不能分离数据库:

已复制并发布数据库。 如果进行复制,则数据库必须是未发布的。 必须通过运行 sp_replicationdboption禁用发布后,才能分离数据库。

如果无法使用 sp_replicationdboption,可以通过运行 sp_removedbreplication删除复制。

数据库中存在数据库快照。

必须首先删除所有数据库快照,然后才能分离数据库。

不能分离或附加数据库快照。

该数据库正在某个数据库镜像会话中进行镜像。

除非终止该会话,否则无法分离该数据库。

数据库处于可疑状态。 无法分离可疑数据库;必须将数据库设为紧急模式,才能对其进行分离。

数据库为系统数据库。

分离只读数据库将会丢失有关差异备份的差异基准的信息。

分离数据库时生成的错误会阻止完全关闭数据库和重新生成事务日志。 收到错误消息后,请执行下列更正操作:

重新附加与数据库关联的所有文件,而不仅仅是主文件。

解决导致生成错误消息的问题。

再次分离数据库。

使用SSMS数据库 工具 分离数据库

1、连接服务器-》展开服务器-》选择数据库-》右键点击-》选择任务-》选择分离。

SQLServer之分离数据库

2、在分离数据库对话框-》右边要分离得数据库对话框-》数据库名称:列出要分离的数据库-》删除连接:断开与指定数据库的连接,不能分离连接为活动状态的数据库-》更新统计信息:默认情况下,分离操作将在分离数据库时保留过期的优化统计信息;若要更新现有的优化统计信息,请单击此复选框-》状态:显示以下状态之一: 就绪或 未就绪-》消息:当数据库进行了复制操作,则 状态为未就绪, 消息列将显示已复制数据库。如果数据库有一个或多个活动连接,则状态为未就绪,消息列显示<number_of_active_connections> 个活动连接,例如:1 个活动连接。 在分离数据库之前,需要通过选择 删除连接断开所有活动连接。

SQLServer之分离数据库

3、数据库分离结果。

SQLServer之分离数据库

使用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之分离数据库


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

爆裂

爆裂

[美] 伊藤穰一、[美] 杰夫·豪 / 张培、吴建英、周卓斌 / 中信出版集团 / 2017-9-1 / 65.00元

越是在发生重大改变的时刻,越是会出现两极分化,赢家、输家有时只在一念间。未来已经装上了全新的操作系统。这是一个重大升级,对我们而言,随之而来的则是陡峭的学习曲线。在指数时代,替换旧逻辑,我们的思维亟需与世界对接,推翻过去已经成为大众所接受的常识,学会差异化思考才能屹立不倒,不被卷入历史的洪流。 在《爆裂》一书中,伊藤穰一和杰夫·豪将这一逻辑提炼为9大原则,帮助人们驾驭这一动荡时刻,应对当下的......一起来看看 《爆裂》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具