T-SQL的游标和fetch
很多时候我们sql操作会得到一个结果集合,当我们需要依次查看集合内的内容时,我们便需要游标特性了。
所以,sql的游标类似c++里容器的迭代器,下面举个例子来辅助理解:
DECLARE vend_cursor CURSOR FOR SELECT * FROM Purchasing.Vendor OPEN vend_cursor FETCH NEXT FROM vend_cursor WHILE(@@fetch_status=0) BEGIN //BALABALA... FETCH NEXT FROM vend_cursor END CLOSE vend_cursor DEALLOCATE vend_cursor
代码分析:首先使用DECLARE来声明游标,表示为哪个结果集;然后是打开游标,使用游标,关闭游标,释放游标。
FETCH从游标处取得数据,WHILE的判断条件为全局变量(@@表示)fetch_status,表示最近依次FETCH的运行结果状态是否成功,为0的话表示成功拿到数据。