如何解决SQL Server错误1222即解锁SQL Server表

use*_*340 69 database sql-server deadlock locking sql-server-2008-r2

我在数据库中工作,我通过数据加载器在原始表中加载数据.但今天数据加载器因未知原因而陷入困境.然后我从Windows任务管理器停止了数据加载器.但后来我再次尝试在原始表中加载数据,但发现它已锁定,我无法对其进行任何操作.我尝试重新启动SQL Server服务,但它没有解决.我没有权限杀死此服务器上的进程.

下面是SQL Server显示的消息.

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

课程地点:

在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(字符串的SqlCommand,ExecutionTypes executionType)
在Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands,ExecutionTypes executionType)
在Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery (StringCollection查询)
在Microsoft.SqlServer.Management.Smo.SqlSmoObject.ExecuteNonQuery(StringCollection查询,布尔includeDbContext)
在Microsoft.SqlServer.Management.Smo.NamedSmoObject.RenameImplWorker(字符串newName)将
在Microsoft.SqlServer.Management.Smo.NamedSmoObject. RenameImpl(String newName)

===================================

超出锁定请求超时时间.参数@objname是不明确的,或者声明的@objtype(OBJECT)是错误的.(.Net SqlClient数据提供程序)


服务器名称:162.44.25.59错误号码:1222
严重性:16状态:56
过程:sp_rename行号:282

我的SQL Server版本是2008 R2.

Abd*_*ari 167

在SQL Server Management Studio中,要查找活动事务的详细信息,请执行以下命令

DBCC opentran()
Run Code Online (Sandbox Code Playgroud)

您将获得活动事务的详细信息,然后从活动事务的SPID获取有关SPID的详细信息,使用以下命令

exec sp_who2 <SPID>
exec sp_lock <SPID>
Run Code Online (Sandbox Code Playgroud)

例如,如果SPID为69,则执行命令as

exec sp_who2 69
exec sp_lock 69
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用以下命令终止该进程

KILL 69
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助 :)

  • kill命令会导致回滚,这可能需要一段时间.您可以使用命令`kill 69 with statusonly`来查看更新的进度状态.您还可以使用命令`dbcc inputbuffer(69)`来查找正在执行的SQL命令并导致锁定. (2认同)

sha*_*wty 19

已经有一段时间了,但上次我有类似的东西:

ROLLBACK TRAN
Run Code Online (Sandbox Code Playgroud)

或试图

COMMIT
Run Code Online (Sandbox Code Playgroud)

什么已经完成了所有的一切,所以我能够清理出来并重新开始.

  • 我想出了ROLLBACK TRAN/COMMIT如果那个查询窗口仍然打开导致表块阻塞,那么它不起作用 (2认同)