首页 新闻 搜索 专区 学院

关于SQL 表锁死问题

0
悬赏园豆:5 [已解决问题] 解决于 2016-11-23 13:58

INSERT INTO ..SELECT * FROM 表1;

这样的写法,会导致在操作期间表1被锁死,如果要插入大量数据,那么其他进程就不能访问词表,我相问一下,碰到这个问题有什么好的解决思路呢?多谢

控制插入条件,这个就别建议了。这是回避而非解决。

JaneEyreWork的主页 JaneEyreWork | 初学一级 | 园豆:11
提问于:2016-09-07 19:16
< >
分享
最佳答案
0

 哥哥,你这样时,是由于SQL Server使用表扫描,在表1上加了 table 级别的共享锁,我觉得,你可以使用table hint,在page 级别加锁,缩小加锁的粒度。

 

 

 

收获园豆:5
悦光阴 | 老鸟四级 |园豆:2251 | 2016-09-07 19:36
其他回答(5)
0

你可以用游标,把select * from 表1查出的结果放到游标中,然后在将值插入

堕落梦醒 | 园豆:161 (初学一级) | 2016-09-07 20:43
0

你这样insert这么多数据,当然会锁啊,insert本身就会锁表

顾晓北 | 园豆:10794 (专家六级) | 2016-09-08 09:06
0

insert into .... select * from (select * from tb with nolock) t

Daniel Cai | 园豆:10424 (专家六级) | 2016-09-08 09:20
0

我怎么感觉你这是表复制、、

Постой! | 园豆:829 (小虾三级) | 2016-09-08 10:49
0

加上where条件呀,top也用上呀

名字什么都是浮云 | 园豆:343 (菜鸟二级) | 2016-09-14 18:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册