Problema con vistas en SQL Server 2005

10/11/2006 - 20:02 por Gregorio López | Informe spam
Hola a todos. Estoy teniendo un problema con una vista la cual tiene una
cláusula ORDER BY.
En SQL Server 2000 al hacer un SELECT * FROM Vista esta vista funciona
correctamente y regresa los datos ordenados. Pero al correr este mismo
SELECT en un SQL Server 2005 el ORDER BY no se hace. ¿Esto es un bug de la
versión o será que el ORDER BY en las vistas ya no se soporta en la versión
2005 y solo se ignora?

Saludos.

Preguntas similare

Leer las respuestas

#1 Gregorio López
10/11/2006 - 21:04 | Informe spam
Hola a todos. Buscando sobre el problema me encontré un workaround donde
dice que en vez de usar
SELECT TOP 100 PERCENT
...
ORDER BY etc

El problema se arregla usando un TOP con una cantidad muy grande, o la
máxima que pueda ser usada.
SELECT TOP 2147483647
...
ORDER BY etc

Aunque no es muy de mi agrado, sí funciona :)

Saludos.

"Gregorio López" wrote in message
news:
Mostrar la cita
#2 Alejandro Mesa
10/11/2006 - 21:24 | Informe spam
Gregorio,

SQL Server no garantiza que el resultado de seleccionar desde esa vista este
ordenado si no usas la clausula "order by" en la sentencia select que la
referencia. Estas agregando una carga extra que no es confiable. Preferible
que uses"

select c1, ..., cn
from dbo.vista
order by c1, ...


AMB


"Gregorio López" wrote:

Mostrar la cita
#3 Gregorio López
11/11/2006 - 00:13 | Informe spam
Entendido Alejandro, gracias.

Saludos.

"Alejandro Mesa" wrote in message
news:
Mostrar la cita
#4 BitOne®
11/11/2006 - 05:35 | Informe spam
Gregorio López:

Otra cosa si vas a utilizar el 100 % de los datos no es necesario que le
indiques
select top 100 percent
from ...
Order by

Pues se no especificas 100 perfect este devolvera el 100% de las filas que
cumplan con la condicion.

Ejemplo:

select top 100 percent *
from authors
order by 1
go
select *
from authors
order by 1

Si tomas estas dos cunsultas y las colocas en el analizador y miras sus
planes de consultas te fijaras y daras cuenta
que retornan lo mismo.

sin embargo si tomas estas dos

go
select *
from authors
order by 1
go
select top 1 percent *
from authors
order by 1


Veras son distintos los planes de ejecucion.

el porcentaje es utilizado cuando comunmente no se conoce que cantidad de
registro se van a devolver y
se requiere analizar una parte de los datos asi de manera rapida.


Saludos,

BitOne®

"Gregorio López" wrote in message
news:
Mostrar la cita
message
Mostrar la cita
donde
Mostrar la cita
funciona
Mostrar la cita
mismo
Mostrar la cita
de
Mostrar la cita
Ads by Google
Search Busqueda sugerida