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;
相关推荐
倔强的石头_14 小时前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
碳基沙盒21 小时前
OpenClaw 多 Agent 配置实战指南
运维
jiayou642 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤3 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区4 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
蝎子莱莱爱打怪4 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
随逸1774 天前
《从零搭建NestJS项目》
数据库·typescript
DianSan_ERP5 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
加号35 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏5 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker