Compliance to ANSI standards

The progression of standards for relational database management systems is ongoing. These standards have been, and are being, adopted by ISO and several national standards bodies. SQL86 was the first of these standards. This was replaced by SQL89, which in turn was replaced by ANSI SQL. The current standard is ANSI SQL, which defines three levels of conformance: entry, intermediate, and full. In the United States, the National Institute for Standards and Technology (NIST) has defined the transitional level, which falls between the entry and intermediate levels.

Certain behaviors defined by the standards are not compatible with existing SQL Server and Adaptive Server applications. Transact-SQL provides set options that allow you to toggle these behaviors.

By default, compliant behavior is enabled for all Embedded SQL™ precompiler applications. Other applications needing to match SQL standard behavior can use the options in Table 1-8 for entry-level ANSI SQL compliance. For more information on setting these options, see set in the Reference Manual: Commands.

Table 1-8: Set command flags for entry-level ANSI SQL compliance

Option

Setting

ansi_permissions

on

ansinull

on

arithabort

off

arithabort numeric_truncation

on

arithignore

off

chained

on

close on endtran

on

fipsflagger

on

quoted_identifier

on

string_rtruncation

on

transaction isolation level

3

The following sections describe the differences between standard behavior and default Transact-SQL behavior.