2012-02-02 29 views
1

当我尝试在SQL Server Management Studio打开表我收到消息无法在打开SQL Server表

Timeout Expired 

然后当我尝试和重命名表,我得到

Rename Failed Lock Request Time out Expired 

注意到它只包含一行主键字段,日期时间字段和varbinary(max)字段。其他表格工作得很好。这偶尔会发生一次。 那么我该怎么做才能解决这个问题。

回答

1

你是什么意思?设计窗口还是查询?

检查服务器上的锁第一:

exec sp_lock 

设置数据库单用户,你可以这样做:

USE master; 
GO 
ALTER DATABASE db SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
GO 
USE db; 
GO 
--DO YOUR WORK HERE 
GO 
ALTER DATABASE db SET MULTI_USER; 

一些有用的存储过程和动态的观点:

select DB_NAME(1) 
select OBJECT_NAME(1131151075,1) 

exec sp_lock 
-- locks for sesion 51 
exec sp_lock 51 

select DB_NAME(dbid) 
select OBJECT_NAME(ObjId,dbid) 

select * from sys.dm_tran_locks 

select * from sys.dm_exec_connections 
select * from sys.dm_exec_sessions 
select * from sys.dm_tran_active_transactions 
select * from sys.dm_tran_database_transactions 

你也可以观看活动监视器并杀死创建锁的sesion。 有关于更多信息:

http://msdn.microsoft.com/en-us/library/ms173730.aspx

+0

我的意思是查询;我无法执行选择命令,最终用户应用程序无法正常工作,所以我想释放锁定;你也是什么意思,做你的工作在这里,是我的选择命令,如果是的话,那么我只是想做选择,因为最终用户applicatoin不工作。 – 2012-02-02 10:16:25

+0

上面的Qyery表示:回滚该数据库上的任何事务,并以SINGLE_USER模式设置数据库。然后你不必担心协调问题。在评论的地方,你可以插入你的查询。但它现在只适用于和单用户(管理员)。我建议查看活动监视器和sp_lock过程结果以找出问题出在哪里以及谁锁定了这个表。 – devarc 2012-02-02 10:52:35

+0

我得到以下结果:54 1 1131151075 0 TAB IS GRANT,我应该怎么做才能释放表格,以便最终用户可以再次工作。以及如何知道原因,thanx – 2012-02-02 11:05:10

相关问题