您的位置:首页 > 数据库

4.5 移动数据库文件

2015-12-07 17:35 260 查看
4.5 移动、清空和删除数据库文件

4.5.1 移动数据库文件

  在某些场景中需要将数据库的文件移动到另一个路径。如果允许将该数据库脱机,那么可以通过先分离数据库,移动数据库文件后再附加数据库的方法。
  还可以通过 T-SQL 语句在数据库联机时移动文件,在该数据库下一次重新联机时生效。在语句中需要使用2个参数,NAME 参数指出数据库文件的逻辑名称,FILENAME 参数指出移动后的目标文件的路径与物理文件名。




ALTER DATABASE [SQLDB01] MODIFY FILE ( NAME = N'FG2012_data', FILENAME = N'E:\MSSQL\Data\FG2012_data.ndf' )
ALTER DATABASE [SQLDB01] MODIFY FILE ( NAME = N'FG2013_data', FILENAME = N'E:\MSSQL\Data\FG2013_data.ndf' )
  在运行上述语句之前,必须确保目标路径已经存在,否则SQL Server将返回“指定的路径不在有效目录中”的错误。还要确保 SQL Server 数据库引擎有权限访问目标文件夹,否则会遇到“无法打开物理文件”和“拒绝访问”的错误。




  上述语句执行成功后,逻辑文件名对应的条目已经在系统目录中被修改。新路径将在数据库下次启动时使用。
  SQL Server 数据库引擎启动后,如果找不到对应的数据库文件,则数据库变成“恢复挂起”状态。可以先将此数据库“脱机”,再尝试联机。如果是由于缺少数据库文件导致不能联机,应当检查系统日志是否存在“无法打开物理文件”和“操作系统错误”之类的错误。





4.5.2 清空数据文件
  必须先清空数据文件中的数据,才可以删除该数据文件。
  在以“文件”方式收缩数据库时,在“收缩操作”选项中选择“通过将数据迁移到同一文件组中的其他文件来清空文件”。




  T-SQL 语句示例如下:
USE [AdventureWorks2014]
GO
DBCC SHRINKFILE (N'AdventureWorks2014_2' , EMPTYFILE)
GO
4.5.3 删除数据文件
  对于空的数据文件,可以删除它。




  T-SQL 语句示例如下:
ALTER DATABASE [AdventureWorks2014] REMOVE FILE [AdventureWorks2014_2]
GO
本文出自 “SQL Server 管理员指南” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: