Около десяти лет назад я добавил ссылку, давно сошедшуюся с надписью, в документ под названием «Уровни соответствия поставщика ANSI SQL». Я сохранил его, чтобы я мог подумать: «Ах, как странно». Стандарт теперь ISO (I = международный), а не только ANSI (A = США). Никто больше не пытается документировать подобные вещи более чем для одного продукта SQL.
Все продавцы уделяют пристальное внимание стандарту SQL и объявляют соответствие уровня по функциональности.Даже если такое объявление не поступит, вы знаете, что они прочитали стандартную спецификацию, даже если это означает разумное решение продлить или сделать что-то совершенно по-другому. Если вы заинтересованы в переносимости, то привыкнете к написанию стандартного SQL, который реализуется или аналогичен синтаксису SQL-продуктов, на которые вы хотите настроить таргетинг.
Взятие mySQL и SQL Server в качестве примеров. Я бы предположил, что некоторые функции mySQL (например, ORDER BY LIMIT
) ближе к стандартам, чем SQL Server (TOP
), потому что mySQL пришел на вечеринку позже и на самом деле имел стандартную спецификацию и не имел совместимости с устаревшей версией. Я бы предположил, что другие функции mySQL (update on duplicate key
) относятся к стандартам (SQL Server расширяет MERGE
от стандартов), потому что они хотели, чтобы что-то было проще для внедрения и более простых пользователей. Я бы предположил, что некоторые функции mySQL близки к тем, что есть в SQL Server, чтобы использовать пользователей!
Если вам нужно беспокоиться о различиях между различными ароматами SQL, эта книга бесценна: http://www.amazon.com/SQL-Nutshell-OReilly-Kevin-Kline/dp/0596518846/ref=sr_1_3?s = книги и т = UTF8 & QID = 1326486636 & стер = 1-3 – HLGEM