You should use the ODBC API to request a cursor type - don't go down the "formerly-undocumented sp_cursor% call" rabbit hole:-P. But, if you are curious as to what the ODBC API does (under the covers) see the sp_cursoropen syntax at https://msdn.microsoft.com/en-us/library/ff848779.aspx. Keep in mind that a cursor type is just a request, not a directive. Implicit cursor conversions can and do happen. To address implicit cursor conversions , the API offers https://msdn.microsoft.com/en-us/library/ms131660(v=sql.120).aspx.