Si l'option SCROLL n'est pas précisée dans une instruction DECLARE CURSOR de style ISO, NEXT est la seule option FETCH prise en charge. Si SCROLL est précisée dans une instruction DECLARE CURSOR de style ISO, toutes les options FETCH sont prises en charge.
Lorsque les extensions de curseur Transact-SQL DECLARE sont utilisées, les règles suivantes sont respectées :
-
si FORWARD_ONLY ou FAST_FORWARD est précisé, NEXT est la seule option FETCH prise en charge ;
-
si DYNAMIC, FORWARD_ONLY ou FAST_FORWARD ne sont pas précisés, et que KEYSET, STATIC ou SCROLL sont spécifiés, toutes les options FETCH sont prises en charge ;
-
les curseurs DYNAMIC SCROLL prennent en charge toutes les options FETCH sauf ABSOLUTE.
La fonction @@FETCH_STATUS établit un rapport d'état de la dernière instruction FETCH. Les mêmes informations sont enregistrées dans la colonne fetch_status du curseur renvoyé par sp_describe_cursor. Ces informations d'état doivent être utilisées pour déterminer la validité des données renvoyées par une instruction FETCH avant de tenter toute opération sur ces données. Pour plus d'informations, consultez @@FETCH_STATUS (Transact-SQL).