2011-03-06 11 views
0

SQL Server 2000で開発された200〜250件のレポートがありますが、多くの場所で*=,=*を使用しています。そのため、最近、SQL Server 2008に移行し、2008年版のすべてのレポートを修正する必要があります。T-SQL 2000〜2008

だから私は

のような互換性での問題のカップルは、「クエリは非ANSIの外側が 演算子(*=または=*)を結合を使用しています。変更せずに、この クエリを実行するには、 互換性レベルを設定してくださいALTER DATABASE のSET COMPATIBILITY_LEVELオプションを使用して、80に電流を データベースの。ANSI外部 を使用してクエリ演算子(LEFT OUTER JOINを、RIGHTに参加書き換えること を強く推奨されますOUTER JOIN)。 SQL Serverの将来のバージョンでは、非ANSIは も 下位互換性モードではサポートされませんオペレーターに参加してください。」

だから、再クエリにすべてのことを、長い時間がかかり、固定。でも、私たち2008の下位互換性を有効にする必要はありません、我々は

が簡単にすべてのこれらのクエリを修正する任意のツールがあります...すべてのそれらのクエリを修正する必要があるのですか?

おかげで、敬具、

答えて

3

Microsoft SQL Server 2008 Upgrade Advisorは、違反しているTSQLを特定する必要がありますが、修正されません。

アップグレードするすべてのデータベースでSQL Server 2008アップグレードアドバイザーを実行することは賢明です。

3

ツールはありません。このようなセマンティクスは、どのようなツールでどのように知ることができますか?

あなたは、少なくともSQL Serverの6.5以降などのJOIN、JOIN/LEFTを使用することができた

FROM 
    Table T1 
    JOIN 
    Table T3 ON T1.key = T3.key 
    LEFT JOIN 
    Table T2 ON T1.key = T3.key 
WHERE 
    T3.foo = 'bar' 

FROM Table1 T1, Table2 T2, Table2 T3 
WHERE T1.key *= T2.key AND T1.key = T3.key AND T3.foo = 'bar' 

を変更している:/ SQL Server 2000の*=を使用することは無知だったとまたは怠惰

関連する問題