Во время редактирования, создания или выбора вишни из операторов SQL я могу найти взаимодействие с одним из четырех популярных инструментов базы данных. Я прибегаю к однострочному комментированию для DB2 и Informix. Я создал макросы в vim, чтобы сделать это немного более эффективным, но мне было интересно, работаю ли я слишком сильно.
Существуют ли многострочные разделители комментариев в SQL, которые являются агностиками поставщиков?
Ответ 1
Комментарии стиля C являются стандартными в SQL 2003 и SQL 2008 (но не в SQL 1999 или ранее). Следующие СУБД все поддерживают комментарии стиля C:
- Informix
- PostgreSQL
- MySQL
- Oracle
- DB2
- Sybase
- Энгр
- Microsoft SQL Server
- SQLite (3.7.2 и более поздние)
- Teradata и Aster
Это не всевозможные СУБД, но это более или менее все основные СУБД SQL. (Я охотно добавлю заметки о любой другой СУБД, которая делает или не поддерживает комментарии стиля С).
Стандартные комментарии комментариев к документу SQL 2003:
<comment> ::= <simple comment> | <bracketed comment>
<simple comment> ::=
<simple comment introducer> [ <comment character> ... ] <newline>
<simple comment introducer> ::=
<minus sign> <minus sign> [ <minus sign> ... ]
<bracketed comment> ::=
<bracketed comment introducer> <bracketed comment contents>
<bracketed comment terminator>
<bracketed comment introducer> ::= <slash> <asterisk>
<bracketed comment terminator> ::= <asterisk> <slash>
<bracketed comment contents> ::= [ { <comment character> | <separator> }... ]
<comment character> ::= <nonquote character> | <quote>
Динамический сервер IBM Informix (IDS или Informix) поддерживает комментарии стиля C. Он также поддерживает "{ ... }
" как потенциально многострочные комментарии, за исключением контекстов, где это означает что-то другое, - что что-то еще является литералом LIST или SET или MULTISET. (Возможно, вы обнаружите, что DB-Access запутался в комментариях стиля C, это отдельная проблема.)
Ответ 2
Стандарт ISO определяет только однострочные комментарии, начинающиеся с двух тире. Некоторые поставщики поддерживают компиляцию в стиле C (т.е. Многострочный, начинающийся с /* и заканчивающийся на */), но он не должен считаться агностиком продавца.