[英]Unable to drop/delete table in SQL Server Management Studio
表上发生了锁定,您可以使用sp_lock
找出锁定表的会话。
在这里,我们试图模拟锁定场景。
SELECT * FROM dbo.test(a INT)
insert into test values(1),(2);
BEGIN TRANSACTION
update TEST set a = 3 where a =1
现在,如果我们在另一个会话中调用sp_lock
,我们就会知道会话,即应用锁。
declare @LOCKS table(
spid smallint, dbid smallint, objid int, indid smallint, type nchar(4), resource nchar(32),
mode nvarchar(8), status nvarchar(5))
insert into @locks
exec sp_lock
select spid, db_name(dbid) as databasename, OBJECT_NAME(objid) as tablename,type,resource,mode, status from @locks
蜘蛛 | 数据库名称 | 表名 | 类型 | 资源 | 模式 | 地位 |
---|---|---|---|---|---|---|
60 | 世界进口商 | 无效的 | D B | 小号 | 授予 | |
60 | 世界进口商 | 测试 | RID | 3:8432:0 | X | 授予 |
60 | 世界进口商 | 测试 | PAG | 3:8432 | 九 | 授予 |
60 | 世界进口商 | 测试 | 标签 | 九 | 授予 |
如果要终止会话,则必须相应地终止它。
kill 60 -- session holding lock on the table
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.