我在一个存储过程中写了一个游标,基本上是这样的:
OPEN curr
Fetch NEXT FROM curr into @ID, @IsCC, @JurisdictionID
While @@FETCH_STATUS = 0
Begin
--Code for Update and Insert operations
Fetch NEXT FROM curr into @ID, @IsCC, @JurisdictionID
End
CLOSE curr
DEALLOCATE curr
现在在 While 循环中,我为外键违规的插入语句之一获得了异常。所以我修复了它,但是在这个异常之后,当我尝试运行我的应用程序时,它甚至无法运行最简单的查询,而且我不断得到Timeout expired
. 只有在我重新启动我的 Sql Server 服务之后,一切似乎才能正常启动。
我的猜测是语句 CLOSE 和 DEALLOCATE 在我遇到异常后没有运行。如果发生这种情况我该怎么办?我害怕如果在生产中发生这种情况我会像一块土豆一样被砸碎。