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:
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.

Respuesta Responder a este mensaje
#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:

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:
> 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.
>



Respuesta Responder a este mensaje
#3 Gregorio López
11/11/2006 - 00:13 | Informe spam
Entendido Alejandro, gracias.

Saludos.

"Alejandro Mesa" wrote in message
news:
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:

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:
> 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.
>



Respuesta Responder a este mensaje
#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:
Entendido Alejandro, gracias.

Saludos.

"Alejandro Mesa" wrote in


message
news:
> 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:
>
>> 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:
>> > 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.
>> >
>>
>>
>>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida