Result-Generating and Result-Free Statements
SQL statements can be loosely divided into the following five categories:
Result Set-Generating Statements These are SQL statements that generate a result set. For example, a SELECT statement.
Row Count-Generating Statements These are SQL statements that generate a count of affected rows. For example, an UPDATE or DELETE statement.
Data Definition Language (DDL) Statements These are SQL statements that modify the structure of the database. For example, CREATE TABLE or DROP INDEX.
Context-Changing Statements These are SQL statements that change the context of a database. For example, the USE and SET statements in SQL Server.
Administrative Statements These are SQL statements used for administrative purposes in a database. For example, GRANT and REVOKE.
SQL statements in the first two categories are collectively known as result-generating statements. SQL statements in the latter three categories are collectively known as result-free statements. ODBC defines the semantics of batches that include only result-generating statements. These semantics vary widely and are therefore data source-specific. For example, the SQL Server driver does not support dropping an object and then referring to or re-creating the same object in the same batch. Therefore, the term batch as used in this manual refers only to batches of result-generating statements.