日期:2014-05-18  浏览次数:20557 次

执行存储过程后多了很多锁???
我有个存储过程,功能如下:

先从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会看到多了很多记录
----------------------
把结果贴出来看看啊
------解决方案--------------------
学习 ... 帮顶