sql数据库文件与日志文件存放位置修改方法

发布时间:2019-08-16编辑:脚本学堂
如何修改sql server数据库的文件存放位置,以及sql数据库日志文件的位置?这里提供一段sql语句,用于修改sql数据库文件与日志文件的保存位置,需要的朋友参考下。

例子,sql数据库文件与日志文件位置修改 sql语句
 

复制代码 代码示例:

--查看当前的存放位置
select database_id,name,physical_name AS CurrentLocation,state_desc,size from sys.master_files 
where database_id=db_id(N'数据库名');
 
--修改文件的存放位置下次启动生效
--testDb为数据库名,
alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径');
alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径');
eg.
  alter database testDb modify file ( name = testDb, filename = 'G:SQL_DATAtestDbtestDb.mdf');
  alter database testDb modify file ( name = testDb_log, filename = 'G:SQL_DATAtestDbtestdb_log.ldf');
 
--修改默认的数据库文件存放位置(即时生效)
EXEC xp_instance_regwrite 
@rootkey='HKEY_LOCAL_MACHINE', 
@key='SoftwareMicrosoftMSSQLServerMSSQLServer', 
@value_name='DefaultData', 
@type=REG_SZ, 
@value='E:MSSQL_MDFdata' 
GO 

--修改默认的日志文件存放位置(即时生效)
EXEC master..xp_instance_regwrite 
@rootkey='HKEY_LOCAL_MACHINE', 
@key='SoftwareMicrosoftMSSQLServerMSSQLServer', 
@value_name='DefaultLog', 
@type=REG_SZ, 
@value='E:MSSQL_MDFlog' 
GO

请大家注意,alter database 数据库名 modify file ( name = 文件名(不包含后缀), filename = '文件存储路径'); 语句的用法,它负责修改数据库文件的逻辑名称与物理名称(文件存储位置)。

如果想修改后,即时生效,则需要借助系统存储过程master..xp_instance_regwrite来实现,这个大家多实践几次,检测下效果。