Цитата:
Сообщение от
Logger
Похожий баг из этой серии :
Создал табличку, завел в ней поля с именами Begin, end
На оракле синхронизация нормально проходит, а MS SQL ругается на зарезервированное слово.
Да есть такое.
Причины следующие:
В документации описано:
Цитата:
Naming of database objects
Naming of tables and indexes in Axapta must follow the general naming
conventions used by Axapta.
• Tables
Only non-temporary tables are created in the database.
Tables are given the same name as in Axapta. If the
name is a reserved word in the actual database system,
then the name is delimited by the values given in system
variables “QUOTEPRE” and “QUOTEPOST”. As an
example, if the value for QUOTEPOST was an
underscore “_” and you defined a table by a reserved
name such as “DATE” then Axapta would automatically
change the name of the table to be called “DATE_” in the
database.
• Columns
Columns are given the same name as in Axapta. If the
name is a reserved word in the actual database system,
then the name is delimited by the values given in system
variables “QUOTEPRE” and “QUOTEPOST”.
А вот список этих самых "reserved word in the actual database system" находится там же, в таблице SQLSYSTEMVARIABLES, в параметре KEYWORDS.
Лучше, конечно, смотреть в таблице СУБД, но можно и в Администрирование-Запросы-БД-Информация БД.
Так вот, это самый список зарезервированных слов является (что естественно) разным для Oracle и Сиквела, но при этом он мягко говоря не является полным, особенно для MS SQL, на мой взгляд. Как вариант, видимо, можно добавить их туда вручную, если очень хочется, но лучше наверное не использовать такие названия.
И ещё дополнение про список зарезервированных слов в параметре KEYWORDS
Цитата:
Comma-separated list of keywords to handle
specially (these are appended to a similar list in
the message file, axsys??.ktd). Object names
appearing from any of these lists, appear by
another name in the database.