首页 > 数据库 > mysql教程 > sqlserver锁表、解锁、查看销表

sqlserver锁表、解锁、查看销表

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-07 17:46:24
原创
1485 人浏览过

sqlserver中怎么锁表、解锁、查看销表呢,下面我以三个不同的实例给各位朋友详细介绍一下有需要的朋友可参考一下。

sqlserver中怎么锁表、解锁、查看销表呢,下面我以三个不同的实例给各位朋友详细介绍一下有需要的朋友可参考一下。

锁定数据库的一个表

 代码如下 复制代码

SELECT * FROM table WITH (HOLDLOCK)

注意: 锁定数据库的一个表的区别

 代码如下 复制代码

SELECT * FROM table WITH (HOLDLOCK)

其他事务可以读取表,但不能更新删除

 代码如下 复制代码

SELECT * FROM table WITH (TABLOCKX)

其他事务不能读取表,更新和删除

SELECT 语句中“加锁选项”的功能说明

SQL Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL Server的缺省设置也可以在select 语句中使用“加锁选项”来实现预期的效果。 本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明


查看被锁表:

 代码如下 复制代码

select   request_session_id   spid,OBJECT_NAME(resource_associated_entity_id) tableName  
from   sys.dm_tran_locks where resource_type='OBJECT'

spid   锁表进程
tableName   被锁表名


解锁:

创建一个临时Table
 

 代码如下 复制代码
CREATE TABLE #HarveyLock
(
 SPID  INT,
 DBID  INT,
 OBJID  INT,
 INDID  INT,
 TYPE  VARCHAR(100),
 RESOURCE VARCHAR(100),
 MODE  VARCHAR(100),
 STATUS  VARCHAR(100)
)


将Lock信息存入该Table

INSERT INTO #HarveyLock EXEC SP_LOCK
 
3.在Table中下条件查询得到的LOCK
SELECT * FROM #HarveyLock
 
4.KILL 相关LOCK
KILL @SPID

 代码如下 复制代码

declare @spid  int
Set @spid  = 57 --锁表进程
declare @sql varchar(1000)
set @sql='kill '+cast(@spid  as varchar)
exec(@sql)

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
mysql优化 - mysql innodb表锁问题
来自于 1970-01-01 08:00:00
0
0
0
mysql主从,从库锁表会导致复制阻塞吗?
来自于 1970-01-01 08:00:00
0
0
0
MySQL:永久解决“等待表元数据锁定”问题
来自于 1970-01-01 08:00:00
0
0
0
java - innodb 中的行级别的锁
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板