我可以理解为了避免因为开销和不便而不得不使用光标,但看起来有一些严重的光标 - 恐惧症 - 狂热正在进行,人们将不遗余力地避免使用光标.
例如,有一个问题询问如何使用游标执行明显无关紧要的操作,并使用带有递归自定义函数的公用表表达式(CTE)递归查询提出接受的答案,即使这会将可处理的行数限制为32 (由于sql server中的递归函数调用限制).这让我觉得它是系统寿命的可怕解决方案,更不用说为了避免使用简单的光标而付出的巨大努力.
这种疯狂仇恨的原因是什么?有一些"着名的权威"发布了针对游标的法特瓦吗?一些无法形容的邪恶是否潜伏在游戏的核心,腐蚀了儿童的道德或什么?
维基问题,答案比代表更感兴趣.
相关信息:
编辑:让我更精确:我理解不应该使用游标而不是正常的关系操作 ; 这是一个明智的选择.我不明白的是,即使游标是一种更简单和/或更有效的解决方案,人们也会不顾一切地避开光标,就像他们有傻瓜一样.困扰我的是非理性的仇恨,而不是明显的技术效率.
我在SQL 7天后就知道了一些性能原因,但SQL Server 2005中是否仍然存在相同的问题?如果我在存储过程中有一个我想单独操作的结果集,那么游标仍然是一个糟糕的选择吗?如果是这样,为什么?
我有两张桌子:
Employees(EmployeeID, EmployeeName, EmployeeStatus, BasicSalary) 和
EmployeePayroll (PayrollID, EmployeeID, VoucherNo, BasicSalary, SalaryMonth)
我想为for each第一个表中的每个员工创建一个循环,以便我可以将虚拟数据插入(0, EmployeeID,0 ,0 ,0)到第二个表中.
我尝试用for循环但它无法制作它,所以for each在MS SQL Server中有一个循环吗?