Access автоматически интерпретирует разрыв слова перед -
Это означает:
SELECT * from MYTAB-10
Эквивалентно следующим запросам
SELECT * FROM MYTAB -10 -- Space added
SELECT * from [MYTAB] AS [-10] -- Explicit alias to make meaning more clear
Это также означает, что вы может написать следующее
SELECT [-10].SomeField FROM MYTAB-10 INNER JOIN MYTAB-11 ON [-10].SomeField = [-11].AnotherField
Поскольку ADO автоматически добавляет SELECT * FROM
, если вы просто предоставляете имя таблицы, это эквивалентно.
Однако: НИКОГДА не используйте это. Это поведение не было стандартизировано и сделает ваш код непереносимым, так как другие СУБД будут иметь синтаксическую ошибку на нем.
Также обратите внимание, что это не работает в ADO при непосредственном открытии таблицы вместо использования автоматического сгенерированный оператор SQL:
Set rst = CurrentProject.Connection.Execute("MYTAB-10", Options := adCmdTableDirect)
'Errors: cannot find input table or query MYTAB-10
Также обратите внимание: символ +
демонстрирует аналогичное поведение. Однако \
, :
и *
этого не делают.