Share via


DBPROPVAL_SQL_SUBMINIMUM-Syntax

Die Anforderung für DBPROPVAL_SQL_SUBMINIMUM ist, dass der Anbieter die Features von DBPROPVAL_SQL_ODBC_MINIMUM unterstützt, wobei folgende Unterschiede zu beachten sind:

  • Features in DBPROPVAL_SQL_ODBC_MINIMUM, jedoch nicht in DBPROPVAL_SQL_SUBMINIMUM:

    DDL-Anweisungen, INSERT-, UPDATE- und DELETE-Anweisungen, Marker dynamischer Parameter und mehrere Tabellen in der FROM-Klausel.

  • Features in DBPROPVAL_SQL_SUBMINIMUM, jedoch nicht in DBPROPVAL_SQL_ODBC_MINIMUM:

    Spaltenaliasse in der Auswahlliste, ganzzahlige und genaue numerische Konstanten, das IS [NOT] NULL-Prädikat.

Obwohl die DBPROPVAL_SQL_SUBMINIMUM-Grammatik unter Berücksichtigung von DBPROPVAL_SQL_ODBC_MINIMUM definiert ist, überprüft der SQL Server-Optimierer für verteilte Abfragen nie auf DBPROPVAL_SQL_ODBC_MINIMUM.

Die DBPROPVAL_SQL_SUBMINIMUM-Grammatik verwendet die folgenden Konventionen.

Konvention

Verwendung

GROSSBUCHSTABEN

SQL-Schlüsselwörter.

Kursiv

Vom Benutzer anzugebende Parameter in der SQL-Syntax.

| (senkrechter Strich)

Trennt Syntaxelemente innerhalb von eckigen oder geschweiften Klammern. Sie können nur eines der Elemente auswählen.

[ ] (eckige Klammern)

Optionale Syntaxelemente. Geben Sie die eckigen Klammern nicht mit ein.

{ } (geschweifte Klammern)

Erforderliche Syntaxelemente. Geben Sie die geschweiften Klammern nicht mit ein.

[,...n]

Zeigt an, dass das vorherige Element n-mal wiederholt werden kann. Die einzelnen Vorkommen werden durch Kommas voneinander getrennt.

[ ...n]

Zeigt an, dass das vorherige Element n-mal wiederholt werden kann. Die einzelnen Vorkommen werden durch Leerzeichen voneinander getrennt.

<label> ::=

Der Name eines Syntaxblockes. Diese Konvention dient zur Gruppierung und Bezeichnung von Teilen einer langen Syntax oder einer Syntaxeinheit, die an mehreren Stellen innerhalb einer Anweisung verwendet werden kann. Jede Stelle, an der der Syntaxblock verwendet werden kann, wird durch die in spitze Klammern eingeschlossene Bezeichnung (<label>) angezeigt.

SQL Server erwartet die folgende Syntax für DBPROPVAL_SQL_SUBMINIMUM:

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

SELECT-Klausel

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

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

<alias> ::=          
    <user_defined_name>

FROM-Klausel

<table_reference_list> ::=
    <table_reference>

<table_reference> ::=
    <table_name>

<table_name> ::=
    <table_identifier>

<table_identifier> ::=
    <user_defined_name>

WHERE-Klausel

<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-Klausel

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

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

Gemeinsame syntaktische Elemente

<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 ist ein beliebiges Zeichen im Zeichensatz des Anbieters oder der Datenquelle. Verwenden Sie zwei einfache Anführungszeichen ('') zur Darstellung eines einfachen Anführungszeichens (Apostrophs) in der Literalzeichenfolge.

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