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;
相关推荐
2601_9498477513 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_6399069413 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
lzhdim13 小时前
100条常用SQL语句
数据库·sql·mysql·mybatis
天河归来13 小时前
从原始消息到业务数据:三层数据架构的设计与实践
数据库·数据仓库·架构
数据库小学妹14 小时前
金融数据库成本怎么算?五笔钱加一张TCO表
数据库·金融行业·数据库选型·国产化替代·tco·金融数据库
今天重构了吗14 小时前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB14 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
auspicious航14 小时前
PostgreSQL的备份与恢复
数据库·postgresql
codezzzsleep14 小时前
学术汇报 PPT 自动化生成实战指南
运维·自动化·powerpoint
古法老登瞎折腾15 小时前
大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
java·大数据·运维·人工智能·spring ai·mcp