Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are there multiline comment delimiters in SQL that are vendor agnostic?

Tags:

comments

sql

While editing, building up, or cherry picking from SQL statements I can find myself interacting with one of four popular database tools. I have been resorting to single line commenting for DB2 and Informix. I have created macros in vim to make this slightly more efficient but I was wondering if I am working too hard.

like image 736
ojblass Avatar asked Apr 08 '09 01:04

ojblass


1 Answers

C style comments are standard in SQL 2003 and SQL 2008 (but not in SQL 1999 or before). The following DBMS all support C style comments:

  • Informix
  • PostgreSQL
  • MySQL
  • Oracle
  • DB2
  • Sybase
  • Ingres
  • Microsoft SQL Server
  • SQLite (3.7.2 and later)
  • Teradata and Aster

That is not every possible DBMS, but it is more or less every major SQL DBMS. (I'll willingly add notes about any other DBMS that does - or does not - support C style comments.)

The SQL 2003 standard documents comment notations thus:

<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 Dynamic Server (IDS or Informix) supports C style comments. It also supports '{ ... }' as potentially multi-line comments, except in contexts where it means something else - that something else being a LIST or SET or MULTISET literal. (You might find that DB-Access gets confused by C style comments; that is a separate issue.)

like image 110
Jonathan Leffler Avatar answered Oct 09 '22 09:10

Jonathan Leffler