-2

我正在尝试删除 azure 门户中的数据酶。从 SQL 池中删除后,我收到以下错误:

消息 37106,级别 16,状态 1,第 7 行 服务器 {'servername}' 上的数据库 '{databasename}' 正在由作业帐户 'jobagent' 使用。与作业帐户关联时,无法删除或重命名数据库。

我应该如何解决这个问题?

4

1 回答 1

1

如果您没有其他数据库,您可以简单地删除服务器并重新创建它。这会让你绕过这个问题。

否则按照以下步骤删除数据库

您可以通过右键单击网格中的进程并选择 Kill Process 菜单项来终止进程。您将被要求确认终止相关进程,然后将通过此进程终止与数据库的打开连接。这个动作就像为单个进程运行杀死 sql 进程的 t-sql 命令。

可以通过生成运行命令列表的动态 sql 命令来实现删除数据库的所有活动连接的方法"Kill @spId"

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)

你也可以参考这篇文章

于 2021-09-07T12:06:18.903 回答