4.5 移动数据库文件

4.5 移动、清空和删除数据库文件


4.5.1 移动数据库文件

  在某些场景中需要将数据库的文件移动到另一个路径。如果允许将该数据库脱机,那么可以通过先分离数据库,移动数据库文件后再附加数据库的方法。

  还可以通过 T-SQL 语句在数据库联机时移动文件,在该数据库下一次重新联机时生效。在语句中需要使用2个参数,NAME 参数指出数据库文件的逻辑名称,FILENAME 参数指出移动后的目标文件的路径与物理文件名。

wKioL1ZlUC6yh7TgAAB0CfW5Qzg023.png


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 数据库引擎有权限访问目标文件夹,否则会遇到“无法打开物理文件”和“拒绝访问”的错误。

wKiom1aBFkvDMVADAAA7BhasD18984.png


  上述语句执行成功后,逻辑文件名对应的条目已经在系统目录中被修改。新路径将在数据库下次启动时使用。

  SQL Server 数据库引擎启动后,如果找不到对应的数据库文件,则数据库变成“恢复挂起”状态。可以先将此数据库“脱机”,再尝试联机。如果是由于缺少数据库文件导致不能联机,应当检查系统日志是否存在“无法打开物理文件”和“操作系统错误”之类的错误。

wKioL1aBFH_yHLGvAADjk7CPSrk515.png



4.5.2 清空数据文件

  必须先清空数据文件中的数据,才可以删除该数据文件。

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

wKiom1ZmmPDQhVluAAB0zrn-Mis091.png


  T-SQL 语句示例如下:

USE [AdventureWorks2014]

GO

DBCC SHRINKFILE (N'AdventureWorks2014_2' , EMPTYFILE)

GO



4.5.3 删除数据文件

  对于空的数据文件,可以删除它。

wKiom1ZmmUqgzdqHAAB3SOBHFdk830.png


  T-SQL 语句示例如下:

ALTER DATABASE [AdventureWorks2014]  REMOVE FILE [AdventureWorks2014_2]

GO



本文出自 “SQLServer2014丛书” 博客,谢绝转载!

你可能感兴趣的:(数据库,移动,文件)