sqlserver锁表处理

Easter79
• 阅读 1039

1.模拟锁表

//建立模拟表
 CREATE   TABLE  Lock1(C1  int   default ( 0 ));
 CREATE   TABLE  Lock2(C1  int   default ( 0 ));
 INSERT   INTO  Lock1  VALUES ( 1 );
 INSERT   INTO  Lock2  VALUES ( 1 );

2.发生死锁

//在新开窗口1执行
 Begin   Tran 
   Update  Lock1  Set  C1 = C1 + 1 ;
   WaitFor  Delay  ' 00:01:00 ' ;
   SELECT   *   FROM  Lock2
 Rollback   Tran ;

//在新开窗口2执行
Begin   Tran 
   Update  Lock2  Set  C1 = C1 + 1 ;
   WaitFor  Delay  ' 00:01:00 ' ;
   SELECT   *   FROM  Lock1
 Rollback   Tran ;

3.查询发生死锁的表

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

sqlserver锁表处理

//清除死锁注意:在新开窗口执行语句否则会发生

sqlserver锁表处理

declare @spid int Set @spid =121//spid为上一sql查询出来的结果这里是52、53、57
declare @sql varchar(1000)set @sql='kill '+cast(@spid as varchar)exec(@sql)

注:模拟死锁代码参照http://www.2cto.com/database/201309/242860.html

点赞
收藏
评论区
推荐文章
待兔 待兔
4年前
PostgreSQL语法、连接
1.语法1.插入数据(INSERT语句)在PostgreSQL中,INSERT查询用于在表中插入新行。可以一次插入单行或多行到表中。语法:INSERTINTOTABLE_NAME(column1,column2,column3,...columnN)VALUES(value1,value2,v
Wesley13 Wesley13
3年前
DB2的一种临时表写法
最近在使用DB2的临时表,学到了一种不用创建临时表再删除临时表的写法:SELECT\FROMTABLE(VALUES(COLUMN\_VALUE,COLUMN\_VALUE))TABLE\_NAME(COLUMN\_NAME,COLUMN\_NUM).比如:SELECTA,BFROMTABLE(VALUES('1','2'),('
Wesley13 Wesley13
3年前
MySQL 基本操作
1、创建数据库:CREATE DATABSE  数据库名;2、切换数据库:USE DATABASE 数据库名;3、创建数据表:CREATE TABLE 表名(属性名 属性类型,...);4、插入数据:INSERT INTO 表名 VALUES(数据值,...);5、从文件中导入数据:
Wesley13 Wesley13
3年前
MySQL 查询MAX函数+GROUP BY的一个误区
    首先,创建一个表如下,pid为主键,并且自动增长CREATE TABLE theTable (  pid INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,  timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  cost I
good123 good123
3年前
c#读写txt文件
//writetxtStringBuilderbuildernewStringBuilder();FileStreamfsnewFileStream(saveFileName,FileMode.Create);StreamWriterswnewStreamWriter(fs,Encoding.Default);for(int
Wesley13 Wesley13
3年前
Mysql 分区表
DROPTABLEIFEXISTS\frank\_test\;CREATETABLE\frank\_test\(\id\bigint(20)NOTNULLAUTO\_INCREMENTCOMMENT'主键id',\gid\bigint(20)DEFAULT'0'COMMENT'基础表id'
Wesley13 Wesley13
3年前
MySQL表的几个简单查询语句
1. 创建数据库CREATE DATABASE databasename2. 删除数据库drop database dbname3\.创建新表create table tabname(col1 type1 \not null\ \primary key\,col2 type2 \not   null\,..)    
Wesley13 Wesley13
3年前
mysql 常用函数
★1\表级锁情况SHOWSTATUSLIKE'table%';\行级锁情况SHOWSTATUSLIKE'innodb\_row\_lock%';\进程列表SHOWPROCESSLIST;SHOWSTATUS;★locate和instr和regexp
Wesley13 Wesley13
3年前
mysql select将多个字段横向合拼到一个字段
表模式:CREATE TABLE tbl_user (  id int(11) NOT NULL AUTO_INCREMENT,  name varchar(255) DEFAULT NULL,  age int(11) DEFAULT NULL,  PRIMARY KEY (id)
Wesley13 Wesley13
3年前
oracle 策略POLICY学习
 1、创建测试表create table TEST_POLICY(  USERNAME VARCHAR2(10),  PASSWORD NUMBER(10));insert into TEST_POLICY values('a',30);insert into TEST_POL
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k