SQLサーバー2008または2005年のデータベースのための互換性レベルをセットする方法
データを選んであるいはクエリーを実行するときに、Microosft SQLサーバー2008またはSQLサーバーで、2005年のデータベース、以下のエラー・メッセージあるいは障害は、返されるかもしれません:
ANSI以外の外側のクエリーが使う[マイクロソフト][ODBC SQLサーバー・ドライバー][SQLサーバー][メッセージ4147、レベル15、状態1、回線4]は、操作員に加わります(”*=”あるいは“=*”)。このクエリーを実行するために修正なしで、どうぞオルター・データベースのセットCOMPATIBILITY_LEVELオプションを使って、80に現在のデータベースのための互換性レベルをセットして下さい。外側のANSIを利用したクエリーが操作員に加わる書き直しにそれが強く勧められます(左の外側のJOIN、右OUTER JOIN)。将来のバージョンで
、SQLサーバー、非ANSI接合個所操作員は、後方互換性モードでさえサポートされないでしょう。
あるいは、
メッセージ4147、レベル15、状態1、回線3
ANSI以外の外側のクエリー使用は、操作員に加わります(”*=”あるいは“=*”)。このクエリーを実行するために修正なしで、どうぞ蓄えられた手順sp_dbcmptlevelを使って、80以下に現在のデータベースのための互換性レベルをセットして下さい。外側のANSIを利用したクエリーが操作員に加わる書き直しにそれが強く勧められます(左の外側のJOIN、右OUTER JOIN)。SQLサーバー、非ANSIのバージョンが加わる未来に、操作員は、後方互換性モードでさえサポートされないでしょう。
エラーがマイクロソフトがサポートをやめたので起こりますのためにそして、外側の削除された古い-様式*=と=*は、操作員に加わります。
SQLサーバーに上記のエラーを取りつけるために、管理者が80へのデータベース互換性レベルをセットする必要があるDB、SQLサーバー2000が一時の回避策としてのどちらの同等。もちろん、ソリューションが現在の標準のSQLをもつ接合個所操作員が加わる古い様式を取り去るためにSQLステートメントあるいはクエリー・コードを修正することであることが最もよいシンタックス。
例えば、以下のSQLクエリーは、妥当ではありません:
SELECT o.name FROM sys.objects o, sys.views v WHERE o.object_id *= v.object_id;
そして、以下のコードと入れ替えられるべきです:
SELECT o.name FROM sys.objects o LEFT JOIN sys.views v ON o.object_id = v.object_id;
あるいは、以下の短くされた内面の接合個所声明:
SELECT o.name FROM sys.objects o, sys.views v WHERE o.object_id = v.object_id;
誰can’tがコード、最も簡単な回避策を変える管理者のために、古い様式への後方互換性を提供するために、戻ることはデータベースの互換性レベルですか加わります。sp_dbcmptlevelが手順(不賛成の意を表された)をしまっておいてあるいはSQLを処理します確かな(部分的に、すべてではなく)データベースふるまいにSQLサーバーの以前のバージョンと互換性があらせるために使用されることができます。これMSDN記事 ふるまいがそれぞれの互換性レベルで変えられるもので概要を提供します。
それがあることができるサーバーがそこに戻るSQLのバージョンは、以下の1個であることができます:
60=SQLサーバー6.0
65=SQLサーバー6.5
70=SQLサーバー7.0
80=SQLサーバー2000
90=SQLサーバー2005
100=SQLサーバー2008
注:もはやSQLサーバー2008で利用できない互換性レベル60、65と70。そして、SQLサーバーの将来のバージョンは、後方互換性の2つのだけ(2)事前のバージョンをサポートするでしょう。指し示された眺めを含んでいるデータベースは、80よりも低く互換性レベルに変わることができません。本当にデータベースが後方互換性モードにセットされるときに、新しい機能の一部は、失われるかもしれません、例えば、SQL CLRサポートとSSMSがデータベースのために図解することをまた留意して下さい。のそばで、全体のサーバーのためにではなく、互換性モードは、単に指定されたデータベースのためのふるまいに影響します。
SQLサーバーで変化とセットの互換性レベルのデータベースへのステップ
以下のSQLコマンドは、SQLサーバー管理スタジオ・クエリー・ウィンドウで出されることができます。忘れずに実行しますそれぞれのコマンドを追い求めて下さい。
- 選択科目:データベースにユーザー・アクセス・モードを選抜させて下さい:
ALTER DATABASE database_name SET SINGLE_USER; - データベース互換性が以前のバージョンの1つに平らにするセットは、上を述べました:
SQLを処理します方法
ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }例えば、
私の_dbがCOMPATIBILITY_LEVEL=80をセットしたオルター・データベース
sp_dbcmptlevelは、手順方法をしまっておきました
EXEC sp_dbcmptlevel database_name, compatibility_level value;例えば、
管理職sp_dbcmptlevel私の_db、90;
- 選択科目:マルチユーザー・アクセス・モードでデータベースを戻して下さい:
ALTER DATABASE database_name SET MULTI_USER;
IMPORTANT:ページは、マシンが翻訳されて保証なしで「現状のままで」提供したということです。機械翻訳は、理解するのが難しいかもしれません。元のイングランドの記事を参照してください. 可能である時はいつも。
関連記事
- マイクロソフトSQLサーバー2005の複数のデータベース・インスタンスをアンインストールして取り去って下さい
- Visual Studio 2008、サーバー2003、SQLサーバー2005その他多数のマイクロソフトDreamSpack提案無料ダウンロードとライセンス
- Windows 7とサーバー2008 R2ベータ(KB967062)が共通のアプリケーション互換性問題を修正するべき更新をダウンロードしてください
- メモリとAWEでページに鍵をかけることによって大きいRAMシステムでSQLサーバー2000、2005あるいは2008を最適化して下さい
- マイクロソフト経由でシステム互換性を新たに調べますアプリケーション互換性ツールキット・バージョン5.5
- SQLサーバー2005エクスプレスのための予定された支持をする方法
- ローカルまた遠隔の接続を許さないSQLサーバー2005への接続を確立している間に、エラーは起こりました
- 無料で事実上のサーバー2005 R2がダウンロードするマイクロソフト入手可能
- 変化オラクル・データベース・ユーザー・パスワード
- 事実上のサーバー2005 R2 SP1(エンタープライズ・エディション)がダウンロード・リンクを指揮するマイクロソフト










































2009年8月14日03:17
[...] 7) 私のデジタル人生。SQLサーバー2008または2005年のデータベースのための互換性レベルをセットする方法。http://www.mydigitallife.info/2009/05/17/how-to-set-compatibility-level-for-sql-server-2008-or-2005-... [...]