@@sqlstatus contains status information resulting from the last fetch statement for the current user session. @@sqlstatus may contain the following values:
Value |
Meaning |
---|---|
0 |
The fetch statement completed successfully. |
1 |
The fetch statement resulted in an error. |
2 |
There is no more data in the result set. This warning occurs if the current cursor position is on the last row in the result set and the client submits a fetch command for that cursor. |
@@sqlstatus has no effect on @@error output. For example, the following batch sets @@sqlstatus to 1 by causing the fetch @@error statement to result in an error. However, @@error reflects the number of the error message, not the @@sqlstatus output:
declare csr1 cursor for select * from sysmessages for read only open csr1 begin declare @xyz varchar(255) fetch csr1 into @xyz select error = @@error select sqlstatus = @@sqlstatus end
Msg 553, Level 16, State 1: Line 3: The number of parameters/variables in the FETCH INTO clause does not match the number of columns in cursor ’csr1’ result set.
At this point, the @@error global variable is set to 553, the number of the last generated error. @@sqlstatus is set to 1.
@@fetch_status returns the status of the most recent fetch:
Value |
Meaning |
---|---|
0 |
fetch operation successful |
-1 |
fetch operation unsuccessful |
-2 |
reserved for future use |