整理一下,关于游标,MSDN有:
过 Transact-SQL 服务器游标检索特定行。
<a href="http://msdn.microsoft.com/zh-cn/library/ms177563.aspx">Transact-SQL 语法约定</a>

参数
<a></a>
<dl></dl>
<dt>NEXT</dt>
<dd></dd>
紧跟当前行返回结果行,并且当前行递增为返回行。如果 FETCH NEXT 为对游标的第一次提取操作,则返回结果集中的第一行。NEXT 为默认的游标提取选项。
<dt>PRIOR</dt>
返回紧邻当前行前面的结果行,并且当前行递减为返回行。如果 FETCH PRIOR 为对游标的第一次提取操作,则没有行返回并且游标置于第一行之前。
<dt>FIRST</dt>
返回游标中的第一行并将其作为当前行。
<dt>LAST</dt>
返回游标中的最后一行并将其作为当前行。
<dt>ABSOLUTE { n | @nvar}</dt>
如果 n 或 @nvar 为正,则返回从游标头开始向后的第 n 行,并将返回行变成新的当前行。如果 n 或@nvar 为负,则返回从游标末尾开始向前的第 n 行,并将返回行变成新的当前行。如果 n 或 @nvar 为 0,则不返回行。n 必须是整数常量,并且 @nvar 的数据类型必须为 smallint、tinyint 或 int。
<dt>RELATIVE { n | @nvar}</dt>
如果 n 或 @nvar 为正,则返回从当前行开始向后的第 n 行,并将返回行变成新的当前行。如果 n 或@nvar 为负,则返回从当前行开始向前的第 n 行,并将返回行变成新的当前行。如果 n 或 @nvar 为 0,则返回当前行。在对游标进行第一次提取时,如果在将 n 或 @nvar 设置为负数或
0 的情况下指定 FETCH RELATIVE,则不返回行。n 必须是整数常量,@nvar 的数据类型必须为 smallint、tinyint 或 int。
<dt>GLOBAL</dt>
指定 cursor_name 是指全局游标。
<dt>cursor_name</dt>
要从中进行提取的打开的游标的名称。如果全局游标和局部游标都使用 cursor_name 作为它们的名称,那么指定 GLOBAL 时,cursor_name 指的是全局游标;未指定 GLOBAL 时,cursor_name 指的是局部游标。
<dt></dt>
@ cursor_variable_name
游标变量名,引用要从中进行提取操作的打开的游标。
<dt>INTO @variable_name[ ,...n]</dt>
允许将提取操作的列数据放到局部变量中。列表中的各个变量从左到右与游标结果集中的相应列相关联。各变量的数据类型必须与相应的结果集列的数据类型匹配,或是结果集列数据类型所支持的隐式转换。变量的数目必须与游标选择列表中的列数一致。

注释
如果 SCROLL 选项未在 ISO 样式的 DECLARE CURSOR 语句中指定,则 NEXT 是唯一支持的 FETCH 选项。如果在 ISO 样式的 DECLARE CURSOR 语句中指定了 SCROLL 选项,则支持所有 FETCH 选项。
如果使用 Transact-SQL DECLARE 游标扩展插件,则应用下列规则:
如果指定了 FORWARD_ONLY 或 FAST_FORWARD,则 NEXT 是唯一受支持的 FETCH 选项。
如果未指定 DYNAMIC、FORWARD_ONLY 或 FAST_FORWARD 选项,并且指定了 KEYSET、STATIC 或 SCROLL 中的某一个,则支持所有 FETCH 选项。
DYNAMIC SCROLL 游标支持除 ABSOLUTE 以外的所有 FETCH 选项。

权限
FETCH 权限默认授予任何有效的用户。

示例
以下示例为 <code>Person.Contact</code> 表中姓氏以字母 <code>B</code> 开头的行声明了一个简单的游标,并使用 <code>FETCH NEXT</code> 逐个提取这些行。<code>FETCH</code> 语句以单行结果集形式返回在 <code>DECLARE CURSOR</code> 中指定的列的值。
<a href="http://blog.csdn.net/luminji/article/details/5130004">复制代码</a>
以下示例与示例 A 相似,但 <code>FETCH</code> 语句的输出存储于局部变量而不是直接返回到客户端。<code>PRINT</code> 语句将变量组合成单一字符串并将其返回到客户端。
以下示例创建一个 <code>SCROLL</code> 游标,使其通过 <code>LAST</code>、<code>PRIOR</code>、<code>RELATIVE</code> 和 <code>ABSOLUTE</code> 选项支持全部滚动功能。
。
另外,再举一个简单的例子:
Declare @Id varchar(20)
Declare @Name varchar(20)
Declare Cur Cursor For
select substring(id,0,7) as id,name from temp1
Open Cur
Fetch next From Cur Into @Id,@Name
While @@fetch_status=0
Begin
Update temp Set [c3]=@Name where [id] like @Id+'%'
Fetch Next From Cur Into @Id,@Name
End
Close Cur
Deallocate Cur
简单的FOR循环等:
declare @i int
set @i=0
while @i<10
begin
set @i = @i+1
end
SQL SERVER不支持FOR循环

语法