SQL Server临时表与游标

SAR*_*VAN 21 sql stored-procedures temp-tables

在SQL Server存储过程中何时使用临时表以及何时使用游标.这是明智的选择吗?

mar*_*c_s 21

如果可能的话,避免像瘟疫这样的游标.SQL Server是基于集合的 - 你需要在RBAR(逐行 - 痛苦行)方式中做的任何事情都会变得缓慢,缓慢并违背SQL工作原理的基本原则.

你的问题很模糊 - 根据这些信息,我们无法真正说出你想要做什么.但主要建议仍然是:尽可能(并且在绝大多数情况下都可能),使用基于集合的操作- SELECT, UPDATE, INSERT和连接 - 不要强迫您对SQL Server进行程序性思考 - 这不是最好的方法.

因此,如果您可以使用基于集合的操作来填充和使用临时表,那么我希望每次都使用该方法而不是游标.


HLG*_*GEM 7

游标逐行工作,表现极差.在几乎所有情况下,它们都可以被更好的基于集合的代码替换(通常不是临时表)

临时表可以是好的也可以是坏的,具体取决于数据量以及您使用它们的方式.它们通常不是光标的替代品.

建议你读这个:http: //wiki.lessthandot.com/index.php/Cursors_and_How_to_Avoid_Them