分离数据库 - SQL Server

分离数据库 - SQL Server

适用于: SQL Server

本文介绍了解如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中分离数据库。 分离后的文件不会被删除,而是保留在文件系统中。 可使用 CREATE DATABASE ... FOR ATTACH 或 FOR ATTACH_REBUILD_LOG 选项重新附加文件。 还可将文件移动到另一个服务器,并将其附加到具有相同或更高版本的实例。

限制

有关限制和局限的列表,请参阅数据库分离和附加 (SQL Server)。

权限

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

使用 SQL Server Management Studio

移动数据库之前

如果要移动数据库,请在将它与其现有 SQL Server 实例分离之前,使用“数据库属性”页查看与数据库关联的文件及其当前位置。

在 SQL Server Management Studio 对象资源管理器中,连接到 SQL Server 数据库引擎 实例,再展开该实例。

展开 “数据库”,并选择要分离的用户数据库的名称。

右键单击数据库名称,并选择“属性”。 选择“文件”页,并查看“数据库文件:”表中的条目。

分离、移动和附加之前,请务必考虑与数据库关联的所有文件。 然后,继续执行下一部分中的分离步骤。 若要详细了解如何将数据库附加到新位置,请参阅附加数据库。

分离数据库

在 SQL Server Management Studio 对象资源管理器中,连接到 SQL Server 数据库引擎 实例,再展开该实例。

展开 “数据库”,并选择要分离的用户数据库的名称。

右键单击数据库名称,指向“任务”,然后选择“分离”。 将出现 “分离数据库” 对话框。

要分离的数据库:列出要分离的数据库。

数据库名称:显示要分离的数据库的名称。

删除连接:断开与指定数据库的连接。

注意

不能分离连接为活动状态的数据库。

更新统计信息:默认情况下,分离操作将在分离数据库时保留过期的优化统计信息;若要更新现有的优化统计信息,请选择此复选框。

保留全文目录:默认情况下,分离操作保留所有与数据库关联的全文目录。 若要删除全文目录,请清除 “保留全文目录” 复选框。 只有从 SQL Server 2005 (9.x) 升级数据库时,才会显示此选项。

状态:显示以下状态之一: “就绪”或“未就绪”。

消息:将出现消息列可显示关于数据库的如下信息:

当数据库进行了复制操作,则“状态”为“未就绪”,“消息”列将显示 “已复制数据库”。

如果数据库有一个或多个活动连接,则“状态”为“未就绪”,且“消息”列会显示“ 个活动连接”。 例如:1 个活动连接。 必须选择“删除连接”来断开所有活动连接,然后才可分离数据库。

若要获取消息的详细信息,请选择相应的超链接文本打开活动监视器。

分离数据库准备就绪后,请选择“确定”。

注意

新分离的数据库将一直显示在对象资源管理器的 “数据库” 节点中,直到刷新该视图。 可以随时刷新视图:选择对象资源管理器窗格,然后从菜单栏依次选择“视图”和“刷新”。

使用 Transact-SQL

移动数据库之前

如果要移动数据库,请在将它与其现有 SQL Server 实例分离之前,使用 sys.database_files 系统目录视图查看与数据库关联的文件及其当前位置。 有关详细信息,请参阅 sys.database_files (Transact-SQL)。

在 SQL Server Management Studio 中,选择“新建查询”以打开查询编辑器。

将以下 Transact-SQL 脚本复制到查询编辑器中,然后选择“执行”。 此脚本显示物理数据库文件的位置。 通过分离/附加来移动数据库时,请务必考虑所有文件。

USE [database_name]

GO

SELECT type_desc, name, physical_name

FROM sys.database_files;

分离、移动和附加之前,请务必考虑与数据库关联的所有文件。 然后,继续执行下一部分中的分离步骤。 若要详细了解如何将数据库附加到新位置,请参阅附加数据库。

分离数据库

连接到 数据库引擎。

在标准栏上,选择“新建查询”。

将以下示例复制并粘贴到查询窗口中,然后选择“执行”。 此示例将分离 AdventureWorks2022 数据库,同时将 skipchecks 选项设置为 true。 有关详细信息,请参阅 sp_detach_db。

EXEC sp_detach_db 'AdventureWorks2022', 'true';

相关内容

数据库分离和附加 (SQL Server)

sp_detach_db (Transact-SQL)

附加数据库

风雨相关