有一张结果表,在存储过程开始时,先删除结果表中的所有数据,然后再往这个表中插入新的数据,最后查询这个结果表返回。问题是:在插入语句后用不用commit关键字。在数据库执行这个存储过程没有问题,但因为我在程序中是循环调用这个存储过程,有时调用比较快,有时就卡死在那里了。加入commit关键字后问题得到解决(没有卡死过),请问各位是什么原因,或者是不是这个原因。
你的数据库是不是开启了隐性事务,隐性事务在首次执行到关键语句,如insert,update,delete,create都会开启一个事务,以保证数据完整性,你加入了commit表明手动提交事务,而如果没写则有SQLSERVER自动完成,可能会导致你这样问题:
可以看下这篇:http://szxiaofei14.spaces.live.com/Blog/cns!5A271B0D5B2A3E58!169.entry