我知道可以避免由于开销和不便而不得不使用游标,但是看起来有些严重的游标恐惧症正在使人们竭尽全力避免不得不使用游标。
例如,一个问题询问如何使用游标做明显的琐碎事情,以及使用带有递归自定义函数的通用表表达式(CTE)递归查询建议的可接受答案,即使这将可处理的行数限制为32 (由于sql server中的递归函数调用限制)。这使我震惊,这是系统使用寿命的一个糟糕解决方案,更不用说为避免使用简单的游标而付出的巨大努力。
如此疯狂的仇恨是什么原因?是否有一些“权威”对游标发布了裁决书?游标的心脏中是否有一些无法形容的邪恶潜伏,破坏了儿童或某些事物的道德?
维基问题,比代表对答案更感兴趣。
相关资料:
编辑:让我更加精确:我理解不应使用游标代替常规的关系操作;这是显而易见的。我不理解的是,即使游标是一种更简单和/或更有效的解决方案,人们也会竭尽全力地避免游标,例如他们拥有笨拙的东西。使我困惑的是非理性的仇恨,而不是明显的技术效率。
32
是胡说八道。想必你是想递归触发器的和最大@@NESTLEVEL
的32
。可以在查询中将其设置OPTION (MAXRECURSION N)
为默认值,100
并0
表示无限制。