Is Microsoft SQL Server 2016 fully ANSI SQL-92 compliant?

Posted on

Question :

I am trying to find a compliance confirmation for MS SQL 2016 – if it is fully compliant with ANSI SQL-92 starndard.

I found this article on Microsoft Docs which states it is not, but it refers to ODBC driver and Microsoft Jet engine – not sure if this is exactly the same thing, shouldn’t it also relate to T-SQL?

Answer :

I don’t believe that any version of any database platform on earth is fully compliant with any version of the standard. This is probably why you’re not finding any claims of 100% compliance…

You can find some promising starting points over on Stack Overflow in the following Q & A: Database Engines and ANSI SQL Compliance

Many references linked from there are not maintained because database platforms are evolving all the time and this would be many full-time jobs to stay on top of it all. Basically:

  • no database platform is 100% compliant, but several come close
  • platforms have proprietary additions on top of the standard, so your definition of “fully compliant” may vary from someone else’s

No (with examples)

From like the very first page,

<concatenation operator> is an operator, ||, that returns the character string made by joining its character string operands in the order given.

SQL Server uses +.

And as far as I know that’s SQL 86.

See also

  • INTERVAL types and SQL Server
  • CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER
  • hex and bit string literals
  • TABLE
  • CORRESPONDING BY
  • TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH OUT TIME ZONE
  • DATE and TIME literals
  • DOMAINS
  • <set column default clause> not there, but instead this thing
  • <position expression>

Leave a Reply

Your email address will not be published. Required fields are marked *