Usuário com melhor resposta
Views com Order By não funcionam quando migra do SQL 2000 para o SQL 2005

Pergunta
-
Boa tarde, estou com um problema no SQL Server 2005 com relação a Views.
Quando executo a query os dados retornam ordenados pelo campo que eu quero.
Quando eu salvo a query dentro de uma view e executo, os dados estão retornando desprezando a cláusula order by. O que pode ser isso??
Respostas
-
não é possivel usar a intrução order by dentro de uma definição de view..... depois que fizer a chamada na vies vc poderá usar o orderby sem problemas
ex:
CREATE VIEW EMP
AS
SELECT EMPLOYEEID, FIRSTNAME, LASTNAME
FROM EMPLOYEES
GOSELECT * FROM EMP
ORDER BY EMPLOYEEID
Todas as Respostas
-
não é possivel usar a intrução order by dentro de uma definição de view..... depois que fizer a chamada na vies vc poderá usar o orderby sem problemas
ex:
CREATE VIEW EMP
AS
SELECT EMPLOYEEID, FIRSTNAME, LASTNAME
FROM EMPLOYEES
GOSELECT * FROM EMP
ORDER BY EMPLOYEEID -
-
-
Henrique,
Em uma view o order by não tem valor, ou seja, a sua função é despreçada, a view é um recurso estático que não permite este tipo de interatividade.
Faça o seguinte crie a sua view sem declarar o order by, no momento da execução da view você utiliza order by.
Conforme o exemplo do André.
-
Henrique, fiz um teste e realmente a partir do SQL2005 o Query Optimizer remove esses operadores, antes isso era possivel.
Segue o link que explica com detalhes essa situação:
http://blogs.msdn.com/queryoptteam/archive/2006/03/24/560396.aspx -
-