• I second Hugo - the kludge to do ordering in a view is not something to advocate. The SQL optimiser is efficient because it doesn't guarantee an order unless explicitly requested by the outer query. The efficiency is gained because it may find that it's more efficient to follow a certain index which would otherwise be very inefficient if a particularly ordering was requested.

    The optimiser correctly sees 100% and ignores the request. Smart 🙂

    I believe I read in an article that compatibility level 80 (perhaps with a trace flag?) would restore the old behaviour.

    Finally, I suppose the only benefit of such an article (and it certainly shows the determination to work around the issue) is that if you have a legacy app that relies on such behaviour you could rewrite the view(s) with the new TOP clause...