SQL Server 修改数据库名及物理数据文件名

一、背景介绍

当前有一 SQL Server 数据库,数据库名称为 study ,现需将该数据库名称修改为 studyold ,并同时根据新用户名修改物理数据文件的名称。

二、操作步骤

2.1 设置为单用户模式(断开连接)

复制代码
USE master;
ALTER DATABASE study SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

2.2 修改数据库名称

复制代码
ALTER DATABASE study MODIFY NAME = studyold;

2.3 查找逻辑文件名

复制代码
USE sdcpold
SELECT name AS LogicalName, physical_name AS PhysicalName
FROM sys.master_files
WHERE database_id = DB_ID(N'studyold');

逻辑文件名和当前物理路径记录如下:

逻辑文件名:study、study_log

物理路径:D:\Program Files\Microsoft SQL Server\MSSQL15.GPMQAS01\MSSQL\DATA\study.mdf、

D:\Program Files\Microsoft SQL Server\MSSQL15.GPMQAS01\MSSQL\DATA\study_log.ldf

2.4 关闭数据库(detach)

复制代码
USE master;
EXEC sp_detach_db @dbname = N'studyold';

2.5 手动重命名物理文件(操作系统层)

2.6 重新附加数据库(attach)并更改逻辑文件名

复制代码
CREATE DATABASE [studyold] ON 
(
    FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL15.GPMQAS01\MSSQL\DATA\studyold.mdf'
),
(
    FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL15.GPMQAS01\MSSQL\DATA\studyold_log.ldf'
)
FOR ATTACH;

2.7 修改逻辑文件名(可选但推荐)

复制代码
ALTER DATABASE sdcpold MODIFY FILE (NAME = study, NEWNAME = studyold);
ALTER DATABASE sdcpold MODIFY FILE (NAME = study_log, NEWNAME = studyold_log);

2.8 查找逻辑文件名

复制代码
USE studyold
SELECT name AS LogicalName, physical_name AS PhysicalName
FROM sys.master_files
WHERE database_id = DB_ID(N'studyold');

逻辑文件名和当前物理路径记录如下:

逻辑文件名:studyold、studyold_log

物理路径:D:\Program Files\Microsoft SQL Server\MSSQL15.GPMQAS01\MSSQL\DATA\studyold.mdf、

D:\Program Files\Microsoft SQL Server\MSSQL15.GPMQAS01\MSSQL\DATA\studyold_log.ldf

2.9 设置为多用户模式

复制代码
ALTER DATABASE studyold SET MULTI_USER;
相关推荐
Zhang~Ling11 分钟前
Linux多线程互斥锁:从现象到原理解析
linux·运维·网络
KaiwuDB11 分钟前
KaiwuDB 运维实战 03:双副本仲裁节点部署与高可用实践
运维·时序数据库·raft·kaiwudb·数据库运维·双副本高可用·仲裁节点
zmzmzmalo3 小时前
Linux ELF文件加载与内存管理揭秘
linux·网络·数据库
三言老师9 小时前
K8s集群运行时自动化运维全覆盖落地实操(下)
linux·运维·服务器·网络
Super 含10 小时前
Android 启动优化(五):线程、GC 与 IO 为什么会拖慢启动?
java·服务器·数据库
ltl10 小时前
向量检索引擎选型:决策树、RAG 回链与开放问题
数据库
坚持学习前端日记11 小时前
Python SQLAlchemy ORM 从0到1精通实战手册(基础到复杂高阶)
数据库·python·oracle
灯澜忆梦11 小时前
【MySQL17】进阶篇 | InnoDB引擎
数据库·mysql
anxiao_m11 小时前
2026制造业云桌面选型攻略,不同生产场景适配方案汇总
大数据·网络·数据库
许彰午11 小时前
# 数据库配拦截器,不用改BPMN
数据库