Order by vistas Sql server 2005

22/01/2009 - 00:12 por toranzo | Informe spam
Tengo una aplicación sql 2000 al pasarlo a sql 2005 la ordenación esta
fallado, en la vista ya no funciona el order by, hay que realizarlo en la
aplicación.



Tampoco me funcion poniendo comatibilidad 80.



Existe alguna otra forma

Preguntas similare

Leer las respuestas

#1 Rubén Garrigós
22/01/2009 - 02:42 | Informe spam
Mucha gente se encuentra con este "problema" debido a malas prácticas del
pasado. Existe un hotfix aplicable para esta situación pero no es muy
recomendable. Es posible que no sean muchas vistas las que tienes con esta
problemática. Yo te recomendaría que quitaras de las vistas el order by y se
lo pusieras donde corresponde (en la consulta que haces sobre la vista).

Si no puedes, o no quieres, hacer esto puedes optar por una "chapuza" que
debería funcionarte en la mayoría de los casos. Sustituye por ejemplo el TOP
(100) PERCERT ... ORDER BY por TOP (99.9999999999999) PERCENT ... ORDER
BY... o bien utiliza un TOP N donde N es un número muy grande de filas
(superior al máximo que vayas a tener) para forzar la ordenación dentro de
la vista.

Rubén Garrigós
Solid Quality Mentors

"toranzo" wrote in message
news:
Tengo una aplicación sql 2000 al pasarlo a sql 2005 la ordenación esta
fallado, en la vista ya no funciona el order by, hay que realizarlo en la
aplicación.



Tampoco me funcion poniendo comatibilidad 80.



Existe alguna otra forma


Respuesta Responder a este mensaje
#2 Alejandro Mesa
22/01/2009 - 02:47 | Informe spam
Toranzo,

No eres el primer cliente en tener este problema, el cual es producto de un
mal uso
de esta clausula, ademas de depender de una facilidad que no esta documentada.

La unica forma de garantizar un resultado ordenado, es usando la clausula
"order by" en la sentencia que retorna la data, en este caso la sentencia que
referencia a la vista.

Te recomiendo que cambies todas esas vistas y que uses la clausula en el
lugar correcto. Ah, y recuerda installar el ultimo service pack, pues este
problema se corrige al instalar el service pack 2 de SS 2005, aunque yo te
recomiendo que instales el ultimo, que es el 3.

SQL Server 2005 Service Pack
http://www.microsoft.com/downloads/...laylang=en


AMB

"toranzo" wrote:

Tengo una aplicación sql 2000 al pasarlo a sql 2005 la ordenación esta
fallado, en la vista ya no funciona el order by, hay que realizarlo en la
aplicación.



Tampoco me funcion poniendo comatibilidad 80.



Existe alguna otra forma



Respuesta Responder a este mensaje
#3 toranzo
22/01/2009 - 09:17 | Informe spam
Muchas gracias, el problema es que es un apliacion un poco vieja que esta en
mantenimiento. Y no queremos reacerla.

Con Sp2 se podria corregir el problema. y lo podriamos dejar con
complatibilidad 80 o 90 ?

"Alejandro Mesa" escribió en el
mensaje news:
Toranzo,

No eres el primer cliente en tener este problema, el cual es producto de
un
mal uso
de esta clausula, ademas de depender de una facilidad que no esta
documentada.

La unica forma de garantizar un resultado ordenado, es usando la clausula
"order by" en la sentencia que retorna la data, en este caso la sentencia
que
referencia a la vista.

Te recomiendo que cambies todas esas vistas y que uses la clausula en el
lugar correcto. Ah, y recuerda installar el ultimo service pack, pues este
problema se corrige al instalar el service pack 2 de SS 2005, aunque yo te
recomiendo que instales el ultimo, que es el 3.

SQL Server 2005 Service Pack 3
http://www.microsoft.com/downloads/...laylang=en


AMB

"toranzo" wrote:

Tengo una aplicación sql 2000 al pasarlo a sql 2005 la ordenación esta
fallado, en la vista ya no funciona el order by, hay que realizarlo en la
aplicación.



Tampoco me funcion poniendo comatibilidad 80.



Existe alguna otra forma



Respuesta Responder a este mensaje
#4 Alejandro Mesa
22/01/2009 - 15:26 | Informe spam
Con Sp2 se podria corregir el problema. y lo podriamos dejar con
complatibilidad 80 o 90 ?



Con el sp2 se soluciona ese problema, pero eso no quiere decir que puedas
usar compatibilidad 90, pues eso depende de que otras facilidades de
versiones anteriores estas usando y que se deban cambiar, como por ejemplo el
uso de los operadores de union *= y =*.

Aqui puedes encontrar la lista.

Backward Compatibility
http://msdn.microsoft.com/en-us/library/ms143232(SQL.90).aspx


AMB


"toranzo" wrote:

Muchas gracias, el problema es que es un apliacion un poco vieja que esta en
mantenimiento. Y no queremos reacerla.

Con Sp2 se podria corregir el problema. y lo podriamos dejar con
complatibilidad 80 o 90 ?

"Alejandro Mesa" escribió en el
mensaje news:
> Toranzo,
>
> No eres el primer cliente en tener este problema, el cual es producto de
> un
> mal uso
> de esta clausula, ademas de depender de una facilidad que no esta
> documentada.
>
> La unica forma de garantizar un resultado ordenado, es usando la clausula
> "order by" en la sentencia que retorna la data, en este caso la sentencia
> que
> referencia a la vista.
>
> Te recomiendo que cambies todas esas vistas y que uses la clausula en el
> lugar correcto. Ah, y recuerda installar el ultimo service pack, pues este
> problema se corrige al instalar el service pack 2 de SS 2005, aunque yo te
> recomiendo que instales el ultimo, que es el 3.
>
> SQL Server 2005 Service Pack 3
> http://www.microsoft.com/downloads/...laylang=en
>
>
> AMB
>
> "toranzo" wrote:
>
>> Tengo una aplicación sql 2000 al pasarlo a sql 2005 la ordenación esta
>> fallado, en la vista ya no funciona el order by, hay que realizarlo en la
>> aplicación.
>>
>>
>>
>> Tampoco me funcion poniendo comatibilidad 80.
>>
>>
>>
>> Existe alguna otra forma
>>
>>
>>



Respuesta Responder a este mensaje
#5 toranzo
22/01/2009 - 17:34 | Informe spam
Gracias de nuevo, tenia el sp2 y instalado el sp3, pero sigue de las misma
forma no se respecta la ordenacion de la vista, es decir el order by
guardado en la vista no lo tiene en cuenta.


"Alejandro Mesa" escribió en el
mensaje news:
Con Sp2 se podria corregir el problema. y lo podriamos dejar con
complatibilidad 80 o 90 ?



Con el sp2 se soluciona ese problema, pero eso no quiere decir que puedas
usar compatibilidad 90, pues eso depende de que otras facilidades de
versiones anteriores estas usando y que se deban cambiar, como por ejemplo
el
uso de los operadores de union *= y =*.

Aqui puedes encontrar la lista.

Backward Compatibility
http://msdn.microsoft.com/en-us/library/ms143232(SQL.90).aspx


AMB


"toranzo" wrote:

Muchas gracias, el problema es que es un apliacion un poco vieja que esta
en
mantenimiento. Y no queremos reacerla.

Con Sp2 se podria corregir el problema. y lo podriamos dejar con
complatibilidad 80 o 90 ?

"Alejandro Mesa" escribió en el
mensaje news:
> Toranzo,
>
> No eres el primer cliente en tener este problema, el cual es producto
> de
> un
> mal uso
> de esta clausula, ademas de depender de una facilidad que no esta
> documentada.
>
> La unica forma de garantizar un resultado ordenado, es usando la
> clausula
> "order by" en la sentencia que retorna la data, en este caso la
> sentencia
> que
> referencia a la vista.
>
> Te recomiendo que cambies todas esas vistas y que uses la clausula en
> el
> lugar correcto. Ah, y recuerda installar el ultimo service pack, pues
> este
> problema se corrige al instalar el service pack 2 de SS 2005, aunque yo
> te
> recomiendo que instales el ultimo, que es el 3.
>
> SQL Server 2005 Service Pack 3
> http://www.microsoft.com/downloads/...laylang=en
>
>
> AMB
>
> "toranzo" wrote:
>
>> Tengo una aplicación sql 2000 al pasarlo a sql 2005 la ordenación esta
>> fallado, en la vista ya no funciona el order by, hay que realizarlo en
>> la
>> aplicación.
>>
>>
>>
>> Tampoco me funcion poniendo comatibilidad 80.
>>
>>
>>
>> Existe alguna otra forma
>>
>>
>>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida