特定の互換モードで機能する言語機能の正確なセットは、ホスティングサーバーのレベルによって異なります。たとえば、SQL Server 2005で実行されているデータベースの互換性レベル80は、SS2008R2で実行されている同じレベルのデータベースとはいくつかの違いがある場合があります。
基になるクエリプランナーおよびデータベースエンジンの他の側面は、互換性レベルを変更しても変更されませんが、文書化されていないデフォルトの状況の一部は異なる動作をする可能性があります。たとえば、悪い選択であったとしても、一部の開発者はSQL Server 2000データベースの行のデフォルトの順序に依存していましたが、そのデフォルトの順序は文書化されていないため、2005年に変更され、そのデータベースが2005で実行されたときに問題が発生しました。もちろん、デフォルトの順序に依存することは、とにかく大したことではありませんが、これは、基になるエンジンが変更された例ですが、実際に実行されたコードは変更されませんでした。
これに完全に答える必要があるのは、SQL Serverのすべてのバージョンについて、互換モードでサポートされているすべてのバックレベルバージョンを一覧表示し、SQL Serverバージョンがサポートしている各レベルについて、すべての言語の完全な一覧を表示することです。その特定のレベルのサーバーで、その互換性レベルでサポートされている機能と許可されていないすべての機能(後のレベルで許可される可能性があります)。
後の機能が低レベルで許可されている例をいくつか見つけましたが(2008R2では互換性80データベースでのスロー/キャッチが可能です)、決定的なリストに近いものは見つかりませんでした。これは役に立ちます。