2011-03-06 4 views
0

У меня около 200-250 отчетов, которые были разработаны в SQL Server 2000, и во многих местах я использовал *=, =*. Так недавно мы перешли на SQL Server 2008, и все отчеты должны быть исправлены для стандарта 2008 года.T-SQL 2000 по 2008 год

Так что я пару вопрос в совместимости как

«В запросе используется не-ANSI внешнее соединение операторов (*= или =*). Для того, чтобы запустить этот запрос без изменений, установите уровень совместимости для текущей базы данных 80, используя COMPATIBILITY_LEVEL вариант ALTER DATABASE SET . настоятельно рекомендуется переписать запрос с использованием ANSI внешний присоединиться к операторам (LEFT OUTER JOIN, RIGHT ВЗАИМОДЕЙСТВИЕ). В будущих версиях SQL Server, не-ANSI присоединиться операторы не будет поддерживаться даже в режимах обратной совместимости.»

Так это занимает много времени, чтобы повторно запросить все вещи и фиксации. Даже мы не нужно, чтобы включить обратную совместимость 2008, мы должны исправить все эти вопросы ...

есть ли какой-либо инструмент, который будет фиксировать все эти вопросы легко?

Спасибо и наилучшие пожелания,

ответ

3

Microsoft SQL Server 2008 Upgrade Advisor должен идентифицировать нарушающий TSQL, но он не исправит его для вас.

Это разумная идея запустить советник по обновлению SQL Server 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 был неведение и/или лень

Смежные вопросы