Estos días me he encotrado con el mismo problema varias veces, por eso me he decidido a escribir sobre él. Cuando nosotros creábamos una vista en SQL Server 2000, el Order By solo estaba soportado si lo utilizábamos con la cláusula TOP para obtener solo un número determiando de filas. A pesar de no estar soportado, muchos desarrolladores utilizaron el truco de poner TOP 100 PERCENT, y al bueno de SQL Server 2000 le colaba, a pesar de no estar soportado. Claro, los lamentos vienen ahora cuando intentamos migrar esas vistas a SQL Server 2005, en donde el truquito ya no funciona. La solución es bien sencilla, y es lo que debería de haberse hecho en SQL Server 2000, si siguiésemos las buenas prácticas: EL ORDER BY EN LA LLAMADA A LA VISTA, NO DENTRO DE ELLA. Un poco de código para ilustrarlo:

USE TempDB
GO
CREATE TABLE testTable (idTest int, nombre varchar(30),cantidad int)
GO
INSERT INTO testTable values (1,'Antonio',23)
INSERT INTO testTable values (2,'Juan',3)
INSERT INTO testTable values (3,'Antonio',32)
GO
CREATE VIEW testView AS
SELECT nombre, sum(cantidad) as suma
FROM testTable
GROUP BY nombre
SELECT * FROM testView ORDER BY suma
0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
Active Directory Evolution RRSS
Leer más

Active Directory Evolution

¿Tú tampoco sabes lo que es Active Directory y cómo puede ayudar al desarrollo de tu entorno colaborativo? Nuestro compañero Miguel Salinas te explica lo que es Active Directory, cómo ha evolucionado a lo largo de los años y cómo sacarle partido a este servicio.

Despliegue de Proyectos en Integration Services 2012

En entradas anteriores hemos revisado las características que ofrece el nuevo modelo de servidor de Integration Services, que se basa en Proyectos y Entornos en lugar de Paquetes y Configuraciones.En SQL Server 2012 se mantendrá la compatibilidad con el modelo de despliegue anterior, basado en paquetes, con la denominación Package Deployment Model. Los procedimientos para realizar despliegues en este modo no han variado desde versiones anteriores por lo que nos centraremos en el modelo de despliegue de proyectos Project Deployment Model.