在数据库开发过程中我们經常会碰到要遍历数据表的情形,一提到遍历表我们第一印象可能就想到使用游标,使用游标虽然直观易懂但是它不符合面向集合操莋的原则,而且性能也比面向集合低当然,从面向集合操作的角度出发也有两种方法可以进行遍历表的操作,总结起来遍历表有下媔几种方法。
这个需求本来可以一条sql语句搞定如下代码所示。但是为了演示表的遍历我还是使用了这三种方式来实现一下。
使用遊标的代码比较繁琐概括起来主要有以下几个步骤,声明游标打开游标,使用游标关闭游标和释放游标。示例代码如下
运行脚本,效果如下图
可以看到,已经达到我们想要的效果了
因为使用游标存在性能和违背面向集合思想的问题,所以我们有必要用面向集合的思想去找到一种更好的解决方案下面这种方法是使用表变量的方式实现的,代码如下
1 -- 方法2:使用表变量 10 -- 将源表中的数据插入到表变量中
临时表也可以实现表变量的功能,所以我们也可以使用临时表来实现这个需求代码如下。
1 -- 方法3:使用临时表
当然实现的效果都是一样的。