--查看当前的存放位置
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来实现,这个大家多实践几次,检测下效果。