21人参与 • 2025-10-16 • MsSqlserver
改名时如果有其他用户会话连接该数据库会报错,必须先杀掉那些用户会话或使数据库处于单用户模式下再执行。
查询当前有哪些会话连接到这个数据库
select spid from master.dbo.sysprocesses where dbid=db_id('test1');如果有,执行kill命令杀掉
kill spid
也可以将数据库设置为单用户模式。在数据库属性 -> “连接”页面 找到“限制访问”选项,选择sigle_user。
![clip_image002[4]](https://images1.3wcode.com/3wcode/20251016/b_0_202510161203416256.png)
命令行
use master -- 设置单用户 exec sp_dboption @dbname='olddbname', @optname= 'single user',@optvalue= 'true' -- 恢复多用户 exec sp_dboption @dbname='newdbname', @optname= 'single user', @optvalue='false' go

use master; go alter database test1 modify name = test; go
或者设置为单用户模式再改
alter database db名 set single_user with rollback immediate; alter database 旧db名 modify name = 新db名; alter database db名 set multi_user;
注意:sql server 2008后续版本将删除该功能。
语法: sp_renamedb [ @dbname = ] 'old_name' , [ @newname = ] 'new_name'
例子: 将数据库test_1的名称修改为test
use master go exec sp_renamedb @dbname='test_1', @newname='test'; go
直接利用脚本修改
use master exec sp_dboption @dbname='olddbname', @optname= 'single user',@optvalue= 'true' exec sp_renamedb @dbname='olddbname', @newname= 'newdbname' exec sp_dboption @dbname='newdbname', @optname= 'single user', @optvalue='false' go
检查修改成功
select name, database_id from sys.databases where name = n'dbname';
到此这篇关于sql server修改数据库名称的常用方法的文章就介绍到这了,更多相关sql server修改数据库名称内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论