Constructing an SQL Statement (ODBC)


System_CAPS_ICON_warning.jpg Warning

SQL Server Native Client (SNAC) is not supported beyond SQL Server 2012. Avoid using SNAC in new development work, and plan to modify applications that currently use it. The Microsoft ODBC Driver for SQL Server provides native connectivity from Windows to Microsoft SQL Server and Microsoft Azure SQL Database.

ODBC applications perform almost all of their database access by executing Transact-SQL statements. The form of these statements depends on the application requirements. SQL statements can be constructed in the following ways:

  • Hard-coded

    Static statements performed by an application as a fixed task.

  • Constructed at run time

    SQL statements constructed at run time that enable the user to tailor the statement by using common clauses, such as SELECT, WHERE, and ORDER BY. This includes ad hoc queries entered by users.

The SQL Server Client ODBC driver parses SQL statements only for ODBC and ISO syntax not directly supported by the Database Engine, which the driver transforms into Transact-SQL. All other SQL syntax is passed to the Database Engine unchanged, where SQL Server will determine if it is valid SQL Server. This approach yields two benefits:

  • Reduced overhead

    Processing overhead for the driver is minimized because it only has to scan for a small set of ODBC and ISO clauses.

  • Flexibility

    Programmers can tailor the portability of their applications. To enhance portability against multiple databases, use primarily ODBC and ISO syntax. To use enhancements specific to SQL Server, use the appropriate Transact-SQL syntax. The SQL Server Native Client ODBC driver supports the complete Transact-SQL syntax so ODBC-based applications can take advantage of all the features in SQL Server.

The column list in a SELECT statement should contain only the columns required to perform the current task. Not only does this reduce the amount of data sent across the network, but also it reduces the effect of database changes on the application. If an application does not reference a column from a table, then the application is not affected by any changes made to that column.

Executing Queries (ODBC)

Community Additions