Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数据库名称更改SQL Server 2008失败_Sql_Sql Server_Tsql - Fatal编程技术网

数据库名称更改SQL Server 2008失败

数据库名称更改SQL Server 2008失败,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个数据库“我的数据库”,我想重命名它,这样就没有空白了。我尝试使用 use master exec sp_renamedb 'I 3 SCI Study','I3SciStudy' 并被错误所困扰 Msg 5030, Level 16, State 2, Line 1 The database could not be exclusively locked to perform the operation. 此服务器是我的本地计算机,除运行重命名查询的窗口外,我没有打开其他查询窗口。在

我有一个数据库“我的数据库”,我想重命名它,这样就没有空白了。我尝试使用

use master
exec sp_renamedb 'I 3 SCI Study','I3SciStudy'
并被错误所困扰

Msg 5030, Level 16, State 2, Line 1
The database could not be exclusively locked to perform the operation.

此服务器是我的本地计算机,除运行重命名查询的窗口外,我没有打开其他查询窗口。在重命名数据库之前,是否需要运行某种类型的关闭连接命令?

使用SSMS重命名数据库,这样做应该不会有任何问题。

尝试此命令,但请注意:

USE master;
ALTER DATABASE [dbname] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO

ALTER DATABASE [dbname] SET MULTI_USER;
GO

您还可以查询有关当前活动的锁管理器资源的信息

SELECT *
FROM sys.dm_tran_locks DTL
WHERE DTL.[resource_database_id] = DB_ID()

每一行表示当前对锁管理器的活动请求,请求已授予或正在等待授予的锁。您将不仅看到当前数据库上的请求(最有可能是资源类型数据库)。锁定这些资源时,无法更改数据库名称

请参阅和。请注意,
sp_renamedb
是。请尝试将数据库置于单用户模式。是否可以停止Sql Server服务(控制面板/管理工具/服务),然后重试。这肯定会关闭所有连接。@granadaCoder我最终只是分离并重新连接了数据库,并重命名了数据库。这是一个相当全面的解决方案,尽管是一个潜在的解决方法。