【问题标题】:Transaction (Process ID) was deadlocked: Sql Server Management Studio事务(进程 ID)已死锁:Sql Server Management Studio
【发布时间】:2015-04-03 05:10:01
【问题描述】:

我正在尝试删除一个数据库(来自Sql Server Management Studio),我收到此错误:

事务(进程 ID 52)在锁定资源上死锁 另一个进程并已被选为死锁受害者。重新运行 交易。 (.Net SqlClient 数据提供者)

我用谷歌搜索了很多(这里也有很多结果),但我找不到任何解决方案。

我真的需要删除(并恢复这个数据库),但我被卡住了。

有什么建议吗?

【问题讨论】:

  • 你又试过了吗?死锁情况通常是暂时的,通常会在死锁解决后不久消失。
  • 等一下,您正在尝试删除数据库并遇到死锁?你说的是表吗?
  • @KrisGruttemeyer:不不,我是说数据库
  • @RBarryYoung:一段时间后我尝试了很多次
  • 您是否尝试过使用ALTER DATABASE [DBName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE 将数据库设置为single_user?这将引导所有当前连接到数据库。然后使用DROP DATABASE [DBName]

标签: sql sql-server-2008-r2 ssms


【解决方案1】:

我猜你有未结交易。例如,对于数据库StackOverflow,我正在打开这样的事务:

USE StackOverflow
BEGIN TRAN

USE StackOverflow
exec sp_whoisactive

所以,当我尝试删除它时:

我收到以下错误:

执行 Transact-SQL 语句时发生异常或 批。 (Microsoft.SqlServer.ConnectionInfo)

无法删除数据库“StackOverflow”,因为它当前正在使用中。 (Microsoft SQL Server,错误:3702)

如果我在删除界面选择close existing connections,则数据库删除成功。

【讨论】:

  • 是我的想法,但正如你所见,我的错误不是很清楚:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多