【发布时间】:2011-11-24 14:35:12
【问题描述】:
我在一个数据库中工作,我通过数据加载器将数据加载到原始表中。但是今天数据加载器由于未知原因卡住了。然后我从 Windows 任务管理器中停止了数据加载器。但后来我再次尝试在原始表中加载数据,但发现它被锁定,我无法对其进行任何操作。我尝试重新启动 SQL Server 服务,但没有解决。而且我无权终止此服务器上的进程。
以下是 SQL Server 显示的消息。
执行 Transact-SQL 语句时发生异常或 批。 (Microsoft.SqlServer.ConnectionInfo)
节目地点:
在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String 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(字符串 新名称)
在 Microsoft.SqlServer.Management.Smo.NamedSmoObject.RenameImpl(字符串 新名称)====================================
已超过锁定请求超时期限。参数@objname 是模棱两可的或声称的@objtype (OBJECT) 是错误的。 (。网 SqlClient 数据提供者)
服务器名称:162.44.25.59 错误号:1222
严重性:16 状态:56
过程:sp_rename 行号:282
我的 SQL Server 版本是 2008 R2。
【问题讨论】:
-
您是否尝试杀死锁定表的会话ID?您可以在服务器上的 SQL Server 活动监视器中查看它或使用 sp_lock2 和 sp_who 的组合来查找需要终止的会话。
-
我的权限不够,请问有没有其他解决办法??
-
除了“等待”或“杀死”之外没有其他解决方案。该错误告诉您的是另一个进程正在锁定您尝试使用的资源,这与您尝试执行的操作不兼容。您可以尝试再次运行以查看阻塞出现的位置(具体来说,是哪个进程阻塞了您的进程),但最终,它需要停止执行它正在执行的操作才能继续。
标签: sql-server database sql-server-2008-r2 locking deadlock