2011-03-06 76 views
0

我有大約200-250報告已經在SQL Server 2000中開發,我在很多地方都使用了*=,=*。所以最近我們遷移到了SQL Server 2008,並且所有報告都必須根據2008標準進行修正。T-SQL 2000到2008

所以,我有幾個問題的兼容性像

「的查詢使用非ANSI外部聯接 運營商(*==*)。爲了運行該 查詢不加修改,請設置 兼容級別當前 數據庫80,使用ALTER DATABASE 的SET COMPATIBILITY_LEVEL選項。強烈建議使用 ANSI外 聯接運算符(LEFT OUTER JOIN重寫查詢,RIGHT OUTER JOIN)。在 的SQL Server的未來版本,非ANSI聯接運算符 甚至不會在 向後兼容性模式的支持。」

,所以要花很長的時間來重新查詢所有的東西和固定,即使我們不需要使2008年的向後兼容性,我們確實需要解決所有這些查詢...

是否有任何工具,可以輕鬆解決所有這些問題?

感謝和問候,

回答

3

沒有工具。例如,任何工具如何知道這個語義會是什麼?

你正在改變

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

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

你已經能夠使用JOIN/LEFT JOIN等至少從SQL Server 6.5中:使用*=爲SQL Server 2000是無知和/或懶惰

相關問題