quarta-feira, 19 de agosto de 2009

Criando VIEWS pré-ordenadas (somente no Sql Server 2000)

Se você já tentou criar uma VIEW pré-ordenada, provavelmente obteve esta mensagem:

Msg 1033, Level 15, State 1, Procedure vw_teste, Line 3
The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified.


Podemos ordena-lá, mas como a mensagem nos informa, isto só funciona se você adicionar o comando TOP. Se você precisa de todos os registros, utilize o comando TOP 100 PERCENT, que retorna todos os registros. Seria algo assim:

create view vw_my_view
as
select top 100 percent * from my_table order by 1

Um comentário:

  1. Lembrando que este *hack*, funciona apenas no SQL SERVER 2000, pois a microsoft removeu esta brecha nas versões anteriores. Views pré-ordenadas são um erro conceitual a nível relacional.

    ResponderExcluir

Leave your comment here!