Upgrde from SQL server 2000 to 2008 an Post migration issue

  • Hi all

    I ran UAdvisor2008 in SQL Server 2000 to Upgrade 2008 and I got advise

    PreOrPostMigrationOuter join operators *= and =* are not supported in 90 or later compatibility modesUpgrade Advisor detected the use of outer join operators *= and =*. These operators are not supported in 90 or later compatibility modes. When you upgrade to SQL Server 2008, user databases maintain their compatibility mode. In 80 compatibility mode, the *= and =* operators for outer joins are supported with a warning message. If you change the database compatibility mode to 90 or later, statements that use these operators will fail.Source Type: DatabaseDatabase: MY_ABObject Name: sp_Dev_DevType_MObject Type: P

    Please help me to resolve this issue.

    Appriciate your help

  • You have to change all of those *= to ANSI join syntax LEFT OUTER JOIN (or RIGHT OUTER JOIN as the case may be.

    http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/931d668b-d02b-4b0d-abda-b9dcaa689d62

    Doesn't really look like there are any other options if you want to run at a compatibility level above 8.


    And then again, I might be wrong ...
    David Webb

  • *= is a left outer join. You'd convert this as'

    select a.customer, b.order

    from customers a, orders b

    where c.customerid *= b.customerid

    to

    select a.customer, b.order

    from customers a

    left outer join orders b

    on a.customerid = b.customerid

    Right outer joins (*=) would be converted the same.

    If you have a lot of code, it's a pain. I guess you could use something like SQL Search (http://www.red-gate.com/products/SQL_Search/index.htm) to find the code.

  • Steve Jones - Editor (9/8/2010)


    If you have a lot of code, it's a pain. I guess you could use something like SQL Search (http://www.red-gate.com/products/SQL_Search/index.htm) to find the code.

    An additional method to find them (Someone please double check that I didn't miss a type?):

    select

    o.name

    from

    sysobjects o

    join

    syscomments c

    ono.id = c.id

    where

    (c.text like '%=*%'

    or c.text like '%*=%')

    AND o.type IN ( 't', 'p') --Triggers and procedures

    -- Did I miss a type?


    - Craig Farrell

    Never stop learning, even if it hurts. Ego bruises are practically mandatory as you learn unless you've never risked enough to make a mistake.

    For better assistance in answering your questions[/url] | Forum Netiquette
    For index/tuning help, follow these directions.[/url] |Tally Tables[/url]

    Twitter: @AnyWayDBA

Viewing 4 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic. Login to reply