更改SQLServer系统数据库位置

一般SQL Server安装后系统数据库的位置不会需要发生变化,但在某些特殊情况下,确实需要更改这些系统数据库的位置。如何实现?

都有哪些数据库是系统数据库?
Master
msdb
model
tempdb
其中Master数据库是启动数据库。
它的存储位置可以在两个地方进行更改:
1. 注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\Parameters
2. 企业管理器:右键服务器-属性-常规-启动参数

其他数据库:
tempdb

代码:
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, FILENAME = ‘E:\User\MSSQL\Data\tempdb.mdf’)
go
ALTER DATABASE tempdb MODIFY FILE(NAME = templog, FILENAME = ‘E:\User\MSSQL\Data\templog.ldf’)
GO

重启SQL Server服务后即可删除原有路径下的tempdb数据库文件

msdb:

代码:
backup database msdb to disk=’c:\msdb.bak’ with init
go

restore database msdb from disk=’c:\msdb.bak’
with move ‘MSDBData’ to ‘E:\User\MSSQL\Data\msdbdata.mdf’
,move ‘MSDBLog’ to ‘E:\User\MSSQL\Data\msdblog.ldf’
,replace
go

model:
SQL Server启动参数增加-T3608,并重启SQL Server

代码:
EXEC sp_detach_db ‘model’
use master
go
sp_attach_db ‘model’,’E:\User\MSSQL\Data\model.mdf’,’E:\User\MSSQL\Data\modellog.ldf’
go
去掉-T3608启动参数,并重启SQL Server