Share via


Syntaxe de DBPROPVAL_SQL_SUBMINIMUM

DBPROPVAL_SQL_SUBMINIMUM impose que le fournisseur prenne en charge les fonctionnalités de DBPROPVAL_SQL_ODBC_MINIMUM, avec les différences suivantes :

  • Fonctions incluses dans DBPROPVAL_SQL_ODBC_MINIMUM, mais pas dans DBPROPVAL_SQL_SUBMINIMUM :

    Instructions DDL, instructions INSERT, UPDATE et DELETE, marqueurs de paramètres dynamiques et tables multiples dans la clause FROM.

  • Fonctions incluses dans DBPROPVAL_SQL_SUBMINIMUM, mais pas dans DBPROPVAL_SQL_ODBC_MINIMUM :

    Alias de colonnes dans la liste de sélection et prédicat IS [NOT] NULL à entier et constantes numériques exactes.

Bien que la grammaire DBPROPVAL_SQL_SUBMINIMUM soit définie par rapport à DBPROPVAL_SQL_ODBC_MINIMUM, l'optimiseur de requête distribuées SQL Server ne teste jamais DBPROPVAL_SQL_ODBC_MINIMUM.

La grammaire DBPROPVAL_SQL_SUBMINIMUM utilise les conventions suivantes.

Convention

Utilisée pour

MAJUSCULES

Mots clés SQL.

italique

Paramètres de syntaxe SQL spécifiés par l'utilisateur.

| (barre verticale)

Sépare les éléments de syntaxe indiqués entre crochets ou accolades. Vous ne pouvez choisir qu'un seul de ces éléments.

[ ] (crochets)

Éléments de syntaxe facultatifs. Ne tapez pas les crochets.

{ } (accolades)

Éléments de syntaxe obligatoires. Ne tapez pas les accolades.

[,...n]

Indique que l'élément précédent peut se répéter n fois. Les virgules séparent les occurrences.

[ ...n]

Indique que l'élément précédent peut se répéter n fois. Les occurrences sont séparées par des espaces.

<étiquette> ::=

Nom d'un bloc de syntaxe. Cette convention est utilisée pour regrouper et étiqueter des parties de syntaxe longue ou une unité de syntaxe pouvant apparaître à plusieurs endroits au sein d'une instruction. Tous les emplacements dans lesquels le bloc de syntaxe peut être utilisé sont signalés par une étiquette encadrée de chevrons : <étiquette>.

La syntaxe suivante de DBPROPVAL_SQL_SUBMINIMUM est attendue par SQL Server :

<select_statement> ::=
    SELECT [ALL | DISTINCT] <select_list>
    FROM <table_reference_list>
    [WHERE <search_condition>]
    [<order_by_clause>]

Clause SELECT

<select_list> ::=     
    * | <select_sublist>[,...n]

<select_sublist> ::=
    <expression> [<alias>]

<alias> ::=          
    <user_defined_name>

Clause FROM

<table_reference_list> ::=
    <table_reference>

<table_reference> ::=
    <table_name>

<table_name> ::=
    <table_identifier>

<table_identifier> ::=
    <user_defined_name>

Clause 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> ::=
     < | > | <= | >= | = | <>

Clause ORDER BY

<order_by_clause> ::=
    ORDER BY <sort_specification>[,...n]

<sort_specification> ::=
    { | <column_name> } [ASC | DESC]

Éléments syntaxiques communs

<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 est un caractère du jeu de caractères du fournisseur ou de la source de données. Utilisez un guillemet double ('') pour représenter un guillemet unique (apostrophe) dans la chaîne littérale.

<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> ::=
    .