select * into table from tableInfo where keyId >1 and keyId <10 是否锁表检测


摘要:
下文通过实验的方式,检测select * into table from tableInfo 是否锁表
实验环境:sqlserver 2008 R2



第一步:基础数据准备:

 create table testA(keyId int,info varchar(10))
go

insert into testA(keyId,info)values(1,'a')
insert into testA(keyId,info)values(2,'b')
insert into testA(keyId,info)values(3,'c')
insert into testA(keyId,info)values(4,'d')
insert into testA(keyId,info)values(5,'e')
insert into testA(keyId,info)values(6,'F') 


第二步:测试

实验窗体2个

  --1.打开查询分析器窗体A(会话1)
  /*
开启事务,采用查询语句建表
*/
 begin tran 
 select keyId,info into testB  from testA where KeyId >1 and keyId <3   ---此时testB表被锁
 --2.打开查询分析器窗体B(会话1)
   update testA set info=info+info where keyId =2  ---操作时testA表被锁
    
  


第三步:测试数据清理:

 drop table testA
 drop table testB 


总结分析:
select into 语句不对对testA源数据表进行任何锁表操作 ,会对testB表进行锁表操作