整理一下,關于遊标,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循環

文法