Using Server Cursors

APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

If an ODBC application sets any of the ODBC cursor attributes to anything other than the defaults, the SQL Server Native Client ODBC driver requests the server to implement an API server cursor of the same type. Using API server cursors frees memory on the client and can significantly reduce network traffic between the client and server.

A potential drawback of API server cursors is that they currently do not support all SQL statements. API server cursors cannot be used to execute:

  • Batches or stored procedures that return multiple result sets.

  • SELECT statements that contain COMPUTE, COMPUTE BY, FOR BROWSE, or INTO clauses.

  • An EXECUTE statement referencing a remote stored procedure.

When connected to an instance of SQL Server, executing a statement with these characteristics using a server cursor causes the cursor being converted to a default result set. When connected to earlier versions of SQL Server, it causes an error.

See Also

How Cursors Are Implemented