Sintassi DBPROPVAL_SQL_SUBMINIMUM
Per soddisfare i requisiti di DBPROPVAL_SQL_SUBMINIMUM, il provider deve supportare le funzionalità di DBPROPVAL_SQL_ODBC_MINIMUM, con le seguenti differenze:
Funzionalità in DBPROPVAL_SQL_ODBC_MINIMUM, ma non in DBPROPVAL_SQL_SUBMINIMUM:
Istruzioni DDL, istruzioni INSERT, UPDATE e DELETE, indicatori di parametro dinamici e tabelle multiple nella clausola FROM.
Funzionalità in DBPROPVAL_SQL_SUBMINIMUM, ma non in DBPROPVAL_SQL_ODBC_MIMIMUM:
Alias di colonne nell'elenco di selezione, costanti integer e numeriche esatte e predicato IS [NOT] NULL.
Sebbene la grammatica DBPROPVAL_SQL_SUBMINIMUM sia definita in relazione a DBPROPVAL_SQL_ODBC_MINIMUM, la funzionalità di ottimizzazione delle query distribuite di SQL Server non controlla mai DBPROPVAL_SQL_ODBC_MINIMUM.
Nella grammatica DBPROPVAL_SQL_SUBMINIMUM vengono adottate le convenzioni seguenti:
Convenzione |
Utilizzo |
---|---|
MAIUSCOLE |
Parole chiave SQL. |
corsivo |
Parametri specificati dall'utente nella sintassi SQL. |
| (barra verticale) |
Separazione degli elementi della sintassi racchiusi tra parentesi quadre o graffe. Indica che è possibile scegliere un solo elemento. |
[ ] (parentesi quadre) |
Elementi sintattici facoltativi. Le parentesi quadre non devono essere digitate. |
{ } (parentesi graffe) |
Elementi sintattici obbligatori. Le parentesi graffe non devono essere digitate. |
[,...n] |
L'elemento precedente può essere ripetuto n volte. Le varie occorrenze sono separate da una virgola. |
[ ...n] |
L'elemento precedente può essere ripetuto n volte. Le varie occorrenze sono separate da spazi. |
<etichetta> ::= |
Nome di un blocco della sintassi. Questa convenzione viene utilizzata per raggruppare ed etichettare sezioni di sintassi estese oppure un'unità sintattica che è possibile utilizzare in più punti di un'istruzione. Ogni posizione in cui è possibile utilizzare il blocco di sintassi è indicata dall'etichetta racchiusa tra virgolette acute, ad esempio <etichetta>. |
Di seguito viene riportata la sintassi di DBPROPVAL_SQL_SUBMINIMUM prevista da SQL Server:
<select_statement> ::=
SELECT [ALL | DISTINCT] <select_list>
FROM <table_reference_list>
[WHERE <search_condition>]
[<order_by_clause>]
Clausola SELECT
<select_list> ::=
* | <select_sublist>[,...n]
<select_sublist> ::=
<expression> [<alias>]
<alias> ::=
<user_defined_name>
Clausola FROM
<table_reference_list> ::=
<table_reference>
<table_reference> ::=
<table_name>
<table_name> ::=
<table_identifier>
<table_identifier> ::=
<user_defined_name>
Clausola WHERE
<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> ::=
< | > | <= | >= | = | <>
Clausola ORDER BY
<order_by_clause> ::=
ORDER BY <sort_specification>[,...n]
<sort_specification> ::=
{ | <column_name> } [ASC | DESC]
Elementi sintattici comuni
<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]'
Viene definito carattere qualsiasi carattere incluso nel set di caratteri del provider o dell'origine dei dati. Per rappresentare la virgoletta singola (apostrofo) in stringhe letterali, utilizzare due virgolette singole ('').
<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> ::=
.