DBPROPVAL_SQL_SUBMINIMUM Syntax
The requirements for DBPROPVAL_SQL_SUBMINIMUM are that the provider supports the features of DBPROPVAL_SQL_ODBC_MINIMUM, with these differences:
- Features in DBPROPVAL_SQL_ODBC_MINIMUM, but not in DBPROPVAL_SQL_SUBMINIMUM:
DDL statements.
INSERT, UPDATE, and DELETE statements.
Dynamic parameter markers.
Multiple tables in the FROM clause. - Features in DBPROPVAL_SQL_SUBMINIMUM, but not in DBPROPVAL_SQL_ODBC_MINIMUM:
Column aliases in the select list.
Integer and exact numeric constants
IS [NOT] NULL predicate.
Although the DBPROPVAL_SQL_SUBMINIMUM grammar is defined in relation to DBPROPVAL_SQL_ODBC_MINIMUM, the SQL Server distributed query optimizer never tests for DBPROPVAL_SQL_ODBC_MINIMUM.
The DBPROPVAL_SQL_SUBMINIMUM grammar uses these conventions.
Convention | Used for |
---|---|
UPPERCASE | SQL keywords. |
italic | User-supplied parameters in SQL syntax. |
| (vertical bar) | Separating syntax items within brackets or braces. You can choose only one of the items. |
[ ] (brackets) | Optional syntax items. Do not type the brackets. |
{} (braces) | Required syntax items. Do not type the braces. |
[,...n] | Indicating that the preceding item can be repeated n number of times. Commas separate the occurrences. |
[ ...n] | Indicating that the preceding item can be repeated n number of times. The occurrences are separated by blanks. |
<label> ::= | The name for a block of syntax. This convention is used to group and label portions of lengthy syntax or a unit of syntax that can be used in more than one place within a statement. Each location in which the block of syntax can be used is indicated with the label enclosed in chevrons: <label>. |
This is the syntax grammar for DBPROPVAL_SQL_SUBMINIMUM, as expected by SQL Server:
<select_statement> ::=
SELECT [ALL | DISTINCT] <select_list>
FROM <table_reference_list>
[WHERE <search_condition>]
[<order_by_clause>]
SELECT clause
<select_list> ::= * | <select_sublist>[,...n]
<select_sublist> ::=
expression [<alias>]
<alias> ::= <user_defined_name>
FROM clause
<table_reference_list> ::=
<table_reference>
<table_reference> ::=
<table_name>
<table_name> ::=
<table_identifier>
<table_identifier> ::=
<user_defined_name>
WHERE clause
<search_condition> ::=
<boolean_term> [OR <search_condition>]
<boolean_term> ::=
<boolean_factor> [AND <boolean_term>]
<boolean_factor> ::=
[NOT] <boolean_primary>
<boolean_primary> ::=
<comparison_predicate> | <search_condition>
<comparison_predicate> ::=
<expression> <comparison_operator> <expression>
| <expression> IS [NOT] NULL
<comparison_operator> ::=
< | > | <= | >= | = | <>
ORDER BY clause
<order_by_clause> ::=
ORDER BY <sort_specification>[,...n]
<sort_specification> ::=
{ | <column_name> } [ASC | DESC]
Common Syntactic Elements
<expression> ::=
<term> | <expression> {+|_} <term>
<term> ::= <factor> | <term> {*|/} <factor>
<factor>::= [+|-] <primary>
<primary> ::= <column_name> | <literal> | (<expression>)
<column_name> ::=
[<table_name>].<column_identifier>
<literal> ::= <character_string_literal>
| <integer_literal>
| <exact_numeric_literal>
<character_string_literal> ::=
'{character}[...n]'
Character is any character in the character set of the provider or data source. Use two single quotation marks ('') to represent a single quotation mark (apostrophe) in the literal string.
<integer_literal> ::=
[+|-] <unsigned_integer>
<exact_numeric_literal>::=
[+|-] <unsigned_integer> [<period><unsigned_integer]
| <period><unsigned_integer>
<column_identifier> ::=
<user_defined_name>
<user_defined_name> ::=
<letter>[<digit>|<letter>|_][...n]
<unsigned_integer> ::=
{<digit>}[...n]
<digit> ::= 0|1|2|3|4|5|6|7|8|9
<letter> ::= <lower_case_letter>|<upper_case_letter>
<lower_case_letter> ::=
a|b|c|d|e|f|g|h|I|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|z
<upper_case_letter> ::=
A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|X|Y|Z
<period> ::= .