sqlserver锁表、解锁、查看销表的方法_MsSql

锁定数据库的一个表

复制代码 代码如下:

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 被锁表名
[@more@]

解锁:

创建一个临时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)

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索sqlserver
, 解锁
, 锁表
查看销表
mssqlserver、mssqlserver2005下载、mssqlserver2005 64位、mssqlserver2008下载、mssqlserver无法启动,以便于您获取更多的相关知识。

时间: 2024-09-23 22:43:13

sqlserver锁表、解锁、查看销表的方法_MsSql的相关文章

SQL Server 利用触发器对多表视图进行更新的实现方法_MsSql

其步骤就是:利用update操作触发器产生的2个虚拟表[inserted]用来存储修改的数据信息和[deleted]表,然后将对应的数据更新到对应数据表中的字段信息中: 1.首先创建3个表: a.信息表: USE [SQL-LI] BEGIN TRANSACTION CHUANGJIAN_XINXIN_TAB --创建命名为[XINXIN_TAB]的数据表,同时不允许字段为空 CREATE TABLE XINXIN_TAB ( 姓名 NVARCHAR(10) NOT NULL, 性别 NVARC

sql server中判断表或临时表是否存在的方法_MsSql

1.判断数据表是否存在 方法一: use yourdb; go if object_id(N'tablename',N'U') is not null print '存在' else print '不存在' 例如: use fireweb; go if object_id(N'TEMP_TBL',N'U') is not null print '存在' else print '不存在' 方法二: USE [实例名] GO IF EXISTS (SELECT * FROM dbo.SysObjec

MSSql简单查询出数据表中所有重复数据的方法_MsSql

本文实例讲述了MSSql简单查询出数据表中所有重复数据的方法.分享给大家供大家参考,具体如下: 这里直接给出下面的例子: SELECT * FROM SYS_LogContent slc WHERE slc.LogInfo_ID IN ( SELECT slc2.LogInfo_ID FROM SYS_LogContent slc2 GROUP BY slc2.LogInfo_ID HAVING COUNT(*)>1 ) 简单说明: 关键代码在于上面的括号中.要想查询出所有重复的数据,可以按照某

sqlserver锁表、解锁、查看销表

  有几个朋友留言建议结合例子来演示一下, 上篇已经说过锁的几种类型, 可以利用系统动态视图sys.dm_tran_locks查看到,重要的栏位如下: resource_type被锁的资源类型(Database, FILE, Object,PAGE,KEY,EXTENT,RID,APPLICATION,METADATA,HOBT,APPOCATION_UNIT) request_mode锁的类型(共享锁,更新锁,排它锁, 架构锁等) resource_description资源描述 reques

sqlserver锁表、解锁、查看销表的方法

锁定数据库的一个表 复制代码 代码如下: SELECT * FROM table WITH (HOLDLOCK) 注意: 锁定数据库的一个表的区别 复制代码 代码如下: SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但不能更新删除 复制代码 代码如下: SELECT * FROM table WITH (TABLOCKX) 其他事务不能读取表,更新和删除 SELECT 语句中"加锁选项"的功能说明 SQL Server提供了强大而完备的锁机

删除Table表中的重复行的方法_MsSql

利用SQL Server 2005的新功能NOW_NUMBER和CTE可以很好的实现. 举例说明如下: 建立测试数据: 复制代码 代码如下: create table Dup1 ( Col1 int null, Col2 varchar(20) null ) insert into Dup1 values (1, 'aaa'), (2, 'aaa'), (2, 'aaa'), (2, 'aaa'), (3, 'bbb'), (3, 'bbb'), (4, 'ccc'), (4, 'ddd'),

sql复制表结构和数据的实现方法_MsSql

SQL SERVER中使用SELECT - INTO语句 按照使用场合可以分为以下几类: 1. 实现全表备份:如:SELECT * INOT t1 FROM titles 2. 备份表的一部分列(不写*而写出列的列表)或一部分行(加WHERE条件) 如: SELECT title_id,title,price INTO t2 FROM titles-部分列 SELECT * INTO t2 FROM titles WHREE price>10 –部分行 SELECT title_id,title

SQL server 表数据改变触发发送邮件的方法_MsSql

今天遇到一个问题,原有生产系统正在健康运行,现需要监控一张数据表,当增加数据的时候,给管理员发送邮件. 领到这个需求后,有同事提供方案:写触发器触发外部应用程序.这是个大胆的想法啊,从来没写过这样的触发器. 以下是参考文章: 第一种方法: 触发器调用外部程序. xp_cmdshell http://www.jb51.net/article/90714.htm 第一篇提供的方法是需要开启xp_cmdshell 先开启xp_cmdshell 打开外围应用配置器-> 功能的外围应用配置器-> 实例名

MS sqlserver 2008数据库转换成2000版本的方法_MsSql

话说本来我的电脑有个2000的数据库,去年我在那个电脑上新装了一个2005的数据库.前不久我买了台新电脑,装了数据库2008 将在旧电脑上的一个数据库附加到了2008上面.做完项目,将数据库传到空间时,空间数据库是2000的,报错说我的数据库是2005的 现在我想把我的数据库转成2000,但是我的2008数据库的脚本向导里面没有转成2000这个选项,2005的版本又附加不上去. 关于这个问题,上网请教了网友,真实人多力量大,给出了一系列答案,下面就为大家整理的内容,希望可以帮助大家解决SQLSe