sqlserver锁表、解锁、查看销表的方法
锁定数据库的一个表
SELECT*FROMtableWITH(HOLDLOCK)
注意:锁定数据库的一个表的区别
SELECT*FROMtableWITH(HOLDLOCK)
其他事务可以读取表,但不能更新删除
SELECT*FROMtableWITH(TABLOCKX)
其他事务不能读取表,更新和删除
SELECT语句中“加锁选项”的功能说明
SQLServer提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQLServer的缺省设置也可以在select语句中使用“加锁选项”来实现预期的效果。本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明
查看被锁表:
selectrequest_session_idspid,OBJECT_NAME(resource_associated_entity_id)tableName fromsys.dm_tran_lockswhereresource_type='OBJECT'
spid锁表进程
tableName被锁表名
[@more@]
解锁:
创建一个临时Table
CREATETABLE#HarveyLock ( SPIDINT, DBIDINT, OBJIDINT, INDIDINT, TYPEVARCHAR(100), RESOURCEVARCHAR(100), MODEVARCHAR(100), STATUSVARCHAR(100) )
将Lock信息存入该Table
INSERTINTO#HarveyLockEXECSP_LOCK
3.在Table中下条件查询得到的LOCK
SELECT*FROM#HarveyLock
4.KILL相关LOCK
KILL@SPID
例
declare@spidint Set@spid=57--锁表进程 declare@sqlvarchar(1000) set@sql='kill'+cast(@spidasvarchar) exec(@sql)
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短