我正在尝试删除azure门户中的数据库。从SQL池中删除后,我得到以下错误:
Msg 37106, Level 16, State 1, Line 7服务器{'servername}上的数据库'{databasename}'正在被作业帐户'jobagent'使用。当与作业帐户相关联时,不能删除或重命名数据库。
我该如何解决这个问题?
如果服务器上没有其他数据库,您可以简单地删除服务器并重新创建它。这会让你绕开这个问题。
按照以下步骤删除数据库您可以通过右键单击网格中的进程并选择kill process菜单项来终止进程。系统将要求您确认终止相关进程,然后通过该进程终止与数据库的打开连接。此操作就像对单个进程运行kill sql process t-sql命令一样。
删除数据库所有活动连接的方法可以通过生成运行"Kill @spId"
命令列表的动态sql命令来实现。
DECLARE @DatabaseName nvarchar(50)
SET @DatabaseName = N'Works'
--SET @DatabaseName = DB_NAME()
DECLARE @SQL varchar(max)
SET @SQL = ''
SELECT @SQL = @SQL + 'Kill ' + Convert(varchar, SPId) + ';'
FROM MASTER..SysProcesses
WHERE DBId = DB_ID(@DatabaseName) AND SPId <> @@SPId
-- SELECT @SQL
EXEC(@SQL)
与上面的sql代码非常相似,可以通过使用COALESCE来使用其他代码块,如下所示
DECLARE @DatabaseName nvarchar(50)
SET @DatabaseName = N'Works'
DECLARE @SQL varchar(max)
SELECT @SQL = COALESCE(@SQL,'') + 'Kill ' + Convert(varchar, SPId) + ';'
FROM MASTER..SysProcesses
WHERE DBId = DB_ID(@DatabaseName) AND SPId <> @@SPId
--SELECT @SQL
EXEC(@SQL)
你也可以参考本文