执行存储过程后多了很多锁???
我有个存储过程,功能如下:
先从1个EXCEL文档中导入数据到1个临时表,然后用游标循环该临时表进行一些操作,然后关闭游标,显示临时表中的数据,删除临时表。
为什么每次在执行了这个存储过程后,执行sp_lock会看到多了很多记录,
这个时候在查询分析器执行很简单的select都会要很久,基本上是一直等待,需要重启SQLserver才能继续,请问这是什么原因,是哪里会自动加锁的?
------解决方案--------------------游标
------解决方案--------------------不懂
------解决方案----------------------访问excel文件
select * from openrowset( 'microsoft.jet.oledb.4.0 ', 'excel 5.0;hdr=no;imex=1;database=d:\test.xls ',sheet1$)
--访问临时表加with (nolock)
select * from #t with (Nolock)
------解决方案--------------------访问临时表应该不会影响别的吧。
sp_lock查出来的是什么锁?加锁的对象是什么?
------解决方案--------------------访问excel好像没有不加锁的选项
------解决方案--------------------使用游标后本来就会开很多很多很多锁,
既然LZ是用的临时表,那么在临时表加上一个IDENTITY用 while 循环也可以做
------解决方案--------------------为什么每次在执行了这个存储过程后,执行sp_lock会看到多了很多记录
----------------------
把结果贴出来看看啊
------解决方案--------------------学习 ... 帮顶