2

我尝试在互联网上搜索 SQL 中游标的目的、使用和实现。我找到了一些答案,它们用非常书卷的语言进行了非常详细的解释,而且这些示例对于理解函数本身来说非常复杂。我是数据库/SQL 的新手所以有人可以用一个简单的例子来解释光标。

4

2 回答 2

5

游标允许您逐行对数据执行操作。例如,在 T-SQL 中为表中的每一行调用一个存储过程:

DECLARE @id_variable int

DECLARE the_cursor CURSOR
FOR SELECT id FROM SomeTable 

OPEN the_cursor
FETCH NEXT FROM the_cursor INTO @id_variable

WHILE @@FETCH_STATUS = 0
BEGIN
    EXEC MyStoredProcedure @id_variable

    FETCH NEXT FROM the_cursor INTO @id_variable
END

CLOSE the_cursor
DEALLOCATE the_cursor

一般来说,如果可能的话,应该避免使用游标,因为它们使用起来很麻烦并且性能很差。

于 2013-01-28T16:50:25.967 回答
4

在其最简单的形式中,游标用于遍历结果集的行。将一行想象为列表中的一个对象。使用游标,您只能访问该行。

如果您熟悉其他编码语言中的 foreach 循环,那么您将完成许多相同的功能。

这个链接不是太书本。非书呆子描述

于 2013-01-28T16:51:45.070 回答