2
互換性レベル80の実際の動作は何ですか?
互換モード機能に関するより良い洞察を誰かが提供してくれますか?予想とは異なる振る舞いをしています。 互換モードを理解している限り、SQL Serverのさまざまなバージョン間の特定の言語構造の可用性とサポートに関するものです。 データベースエンジンバージョンの内部動作には影響しません。以前のバージョンではまだ利用できなかった機能と構成の使用を防止しようとします。 SQL Server 2008 R2で互換レベル80の新しいデータベースを作成しました。単一のint列を持つテーブルを作成し、いくつかの行を追加しました。 次に、row_number()関数を使用してselectステートメントを実行しました。 私の考えでは、row_number関数は2005年にのみ導入されたため、compat 80モードではエラーがスローされます。 しかし、驚いたことに、これはうまくいきました。そして、確かに、コンパットルールは、「何かを保存」して初めて評価されます。そこで、row_numberステートメントのストアドプロシージャを作成しました。 ストアドプロシージャの作成は問題なく行われ、完全に実行して結果を得ることができました。 誰かが互換モードの動作をよりよく理解するのを手伝ってくれますか?私の理解には明らかに欠陥があります。