Синтаксис DBPROPVAL_SQL_SUBMINIMUM
Требования к драйверу DBPROPVAL_SQL_SUBMINIMUM заключаются в том, что поставщик поддерживает функции DBPROPVAL_SQL_ODBC_MINIMUM со следующими отличиями.
Функции, содержащиеся в DBPROPVAL_SQL_ODBC_MINIMUM, но отсутствующие в DBPROPVAL_SQL_SUBMINIMUM:
инструкции DDL; инструкции INSERT, UPDATE и DELETE; маркеры динамических параметров; несколько таблиц в предложении FROM.
Функции, содержащиеся в DBPROPVAL_SQL_SUBMINIMUM, но отсутствующие в DBPROPVAL_SQL_ODBC_MINIMUM:
псевдонимы столбцов в списке выборки; целые и точные числовые константы предиката IS [NOT] NULL.
Хотя грамматика DBPROPVAL_SQL_SUBMINIMUM задана по отношению к DBPROPVAL_SQL_ODBC_MINIMUM, оптимизатор распределенных запросов SQL Server никогда не проверяет DBPROPVAL_SQL_ODBC_MINIMUM.
В грамматике DBPROPVAL_SQL_SUBMINIMUM применяет следующие соглашения.
Соглашение |
Используется для |
---|---|
ВЫДЕЛЕНИЕ ПРОПИСНЫМИ БУКВАМИ |
Ключевые слова SQL. |
курсив |
Пользовательские параметры в синтаксисе SQL. |
| (вертикальная черта) |
Разделяет элементы синтаксиса внутри квадратных или фигурных скобок. Может быть выбран только один из элементов. |
[ ] (квадратные скобки) |
Необязательные элементы синтаксиса. Скобки не используются. |
(фигурные скобки) |
Обязательные элементы синтаксиса. Фигурные скобки не используются. |
[,...n] |
Указывает на то, что предыдущий элемент может повторяться n раз. Отдельные вхождения разделяются запятыми. |
[ ...n] |
Указывает на то, что предыдущий элемент может повторяться n раз. Отдельные вхождения разделяются пробелами. |
<метка> ::= |
Имя синтаксического блока. Это соглашение используется для группирования и метки длинных участков синтаксиса или синтаксических блоков, которые могут использоваться в нескольких местах внутри инструкции. Каждое место, в котором может быть использован синтаксический блок, обозначается меткой, заключенной в угловые скобки: <метка>. |
Следующая синтаксическая грамматика DBPROPVAL_SQL_SUBMINIMUM ожидается в SQL Server.
<select_statement> ::=
SELECT [ALL | DISTINCT] <select_list>
FROM <table_reference_list>
[WHERE <search_condition>]
[<order_by_clause>]
Предложение SELECT
<select_list> ::=
* | <select_sublist>[,...n]
<select_sublist> ::=
<expression> [<alias>]
<alias> ::=
<user_defined_name>
Предложение FROM
<table_reference_list> ::=
<table_reference>
<table_reference> ::=
<table_name>
<table_name> ::=
<table_identifier>
<table_identifier> ::=
<user_defined_name>
Предложение 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> ::=
< | > | <= | >= | = | <>
Предложение ORDER BY
<order_by_clause> ::=
ORDER BY <sort_specification>[,...n]
<sort_specification> ::=
{ | <column_name> } [ASC | DESC]
Общие синтаксические элементы
<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]'
Символ — это любой символ из кодировки поставщика источника данных. Используйте две одинарные кавычки ('') для представления одиночной кавычки (апострофа) в строковом литерале.
<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> ::=
.