Problemas con Vistas en SQL 2005 SP1

09/10/2006 - 19:40 por cris | Informe spam
Tengo el siguiente problema extraño!!!.

Una vista en SQL 2005 . Vistas - Modificar - Ejecutar

SELECT TOP (100) PERCENT Cliente, Producto, CP
FROM dbo.Clientes
WHERE Producto IN (11, 13, 14, 22)
AND (Cliente < 1000000)
ORDER BY CP

Hasta aqui todo OK, ya que me los ordena de AZ los CP. Grabo vista

Si ahora hago Vistas - Abrir Vista, NO ME LOS ORDENA POR CP ni por nada.

Que puedo mirar??

Datos:
Microsoft SQL Server Management Studio 9.00.2047.00
Herramientas cliente de Microsoft Analysis Services 2005.090.2047.00
Microsoft Data Access Components (MDAC) 2000.086.1830.00
(srv03_sp1_rtm.050324-1447)
Microsoft MSXML 2.6 3.0 5.0 6.0
Microsoft Internet Explorer 6.0.3790.1830
Microsoft .NET Framework 2.0.50727.42
Sistema operativo 5.2.3790

Preguntas similare

Leer las respuestas

#1 Javier Loria
09/10/2006 - 22:20 | Informe spam
Hola Cristina:
No es un problema es parte de las diferencias entre SQL 2005 y 2000 y
esta documentada.
El truco de usar TOP 100 PERC/ORDER BY en las vistas ya no funciona en
2005, esto es porque las vistas son tablas virtuales y al igual que las
tablas no deben ser ordenadas. Al incluir una sentencia de ORDER BY se
obligaba al servidor a crear un cursor para mantener el orden. Ahora tienes
que poner el ORDER BY afuera a sea cuando consultas la vista.
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"cris" wrote in message
news:%
Tengo el siguiente problema extraño!!!.

Una vista en SQL 2005 . Vistas - Modificar - Ejecutar

SELECT TOP (100) PERCENT Cliente, Producto, CP
FROM dbo.Clientes
WHERE Producto IN (11, 13, 14, 22)
AND (Cliente < 1000000)
ORDER BY CP

Hasta aqui todo OK, ya que me los ordena de AZ los CP. Grabo vista

Si ahora hago Vistas - Abrir Vista, NO ME LOS ORDENA POR CP ni por nada.

Que puedo mirar??

Datos:
Microsoft SQL Server Management Studio 9.00.2047.00
Herramientas cliente de Microsoft Analysis Services 2005.090.2047.00
Microsoft Data Access Components (MDAC) 2000.086.1830.00
(srv03_sp1_rtm.050324-1447)
Microsoft MSXML 2.6 3.0 5.0 6.0
Microsoft Internet Explorer 6.0.3790.1830
Microsoft .NET Framework 2.0.50727.42
Sistema operativo 5.2.3790

Respuesta Responder a este mensaje
#2 cris
09/10/2006 - 22:46 | Informe spam
me pones un ejemplo como el que os he puesto?

"Javier Loria" escribió en el mensaje
news:OGhqrB%
Hola Cristina:
No es un problema es parte de las diferencias entre SQL 2005 y 2000 y
esta documentada.
El truco de usar TOP 100 PERC/ORDER BY en las vistas ya no funciona en
2005, esto es porque las vistas son tablas virtuales y al igual que las
tablas no deben ser ordenadas. Al incluir una sentencia de ORDER BY se
obligaba al servidor a crear un cursor para mantener el orden. Ahora
tienes que poner el ORDER BY afuera a sea cuando consultas la vista.
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"cris" wrote in message
news:%
Tengo el siguiente problema extraño!!!.

Una vista en SQL 2005 . Vistas - Modificar - Ejecutar

SELECT TOP (100) PERCENT Cliente, Producto, CP
FROM dbo.Clientes
WHERE Producto IN (11, 13, 14, 22)
AND (Cliente < 1000000)
ORDER BY CP

Hasta aqui todo OK, ya que me los ordena de AZ los CP. Grabo vista

Si ahora hago Vistas - Abrir Vista, NO ME LOS ORDENA POR CP ni por nada.

Que puedo mirar??

Datos:
Microsoft SQL Server Management Studio 9.00.2047.00
Herramientas cliente de Microsoft Analysis Services 2005.090.2047.00
Microsoft Data Access Components (MDAC) 2000.086.1830.00
(srv03_sp1_rtm.050324-1447)
Microsoft MSXML 2.6 3.0 5.0 6.0
Microsoft Internet Explorer 6.0.3790.1830
Microsoft .NET Framework 2.0.50727.42
Sistema operativo 5.2.3790





Respuesta Responder a este mensaje
#3 cris
09/10/2006 - 22:51 | Informe spam
y esto lo pone automatico SELECT TOP (100) PERCENT

"cris" escribió en el mensaje
news:%23xdC4P%
me pones un ejemplo como el que os he puesto?

"Javier Loria" escribió en el mensaje
news:OGhqrB%
Hola Cristina:
No es un problema es parte de las diferencias entre SQL 2005 y 2000 y
esta documentada.
El truco de usar TOP 100 PERC/ORDER BY en las vistas ya no funciona en
2005, esto es porque las vistas son tablas virtuales y al igual que las
tablas no deben ser ordenadas. Al incluir una sentencia de ORDER BY se
obligaba al servidor a crear un cursor para mantener el orden. Ahora
tienes que poner el ORDER BY afuera a sea cuando consultas la vista.
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"cris" wrote in message
news:%
Tengo el siguiente problema extraño!!!.

Una vista en SQL 2005 . Vistas - Modificar - Ejecutar

SELECT TOP (100) PERCENT Cliente, Producto, CP
FROM dbo.Clientes
WHERE Producto IN (11, 13, 14, 22)
AND (Cliente < 1000000)
ORDER BY CP

Hasta aqui todo OK, ya que me los ordena de AZ los CP. Grabo vista

Si ahora hago Vistas - Abrir Vista, NO ME LOS ORDENA POR CP ni por nada.

Que puedo mirar??

Datos:
Microsoft SQL Server Management Studio 9.00.2047.00
Herramientas cliente de Microsoft Analysis Services
2005.090.2047.00
Microsoft Data Access Components (MDAC) 2000.086.1830.00
(srv03_sp1_rtm.050324-1447)
Microsoft MSXML 2.6 3.0 5.0 6.0
Microsoft Internet Explorer 6.0.3790.1830
Microsoft .NET Framework 2.0.50727.42
Sistema operativo 5.2.3790









Respuesta Responder a este mensaje
#4 cris
10/10/2006 - 00:21 | Informe spam
Quieres decir que debo hacer esto??:

VISTA INCIAL:
SELECT TOP (100) PERCENT Cliente, Producto, CP
FROM dbo.Clientes
WHERE Producto IN (11, 13, 14, 22)
AND (Cliente < 1000000)
ORDER BY CP
VISTA ORDENADA

CREATE VIEW [VISTA ORDENADA] AS

SELECT TOP 100 PERCENT * FROM [VISTA INCIAL]

ORDER BY CP


Con cuantas vistas me junto entonces en un DB ????
A quien se le ha ocurrido quitar el ORDER BY??, lo veis logico??


"cris" escribió en el mensaje
news:uiBbET%
y esto lo pone automatico SELECT TOP (100) PERCENT

"cris" escribió en el mensaje
news:%23xdC4P%
me pones un ejemplo como el que os he puesto?

"Javier Loria" escribió en el mensaje
news:OGhqrB%
Hola Cristina:
No es un problema es parte de las diferencias entre SQL 2005 y 2000 y
esta documentada.
El truco de usar TOP 100 PERC/ORDER BY en las vistas ya no funciona
en 2005, esto es porque las vistas son tablas virtuales y al igual que
las tablas no deben ser ordenadas. Al incluir una sentencia de ORDER BY
se obligaba al servidor a crear un cursor para mantener el orden. Ahora
tienes que poner el ORDER BY afuera a sea cuando consultas la vista.
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"cris" wrote in message
news:%
Tengo el siguiente problema extraño!!!.

Una vista en SQL 2005 . Vistas - Modificar - Ejecutar

SELECT TOP (100) PERCENT Cliente, Producto, CP
FROM dbo.Clientes
WHERE Producto IN (11, 13, 14, 22)
AND (Cliente < 1000000)
ORDER BY CP

Hasta aqui todo OK, ya que me los ordena de AZ los CP. Grabo vista

Si ahora hago Vistas - Abrir Vista, NO ME LOS ORDENA POR CP ni por
nada.

Que puedo mirar??

Datos:
Microsoft SQL Server Management Studio 9.00.2047.00
Herramientas cliente de Microsoft Analysis Services 2005.090.2047.00
Microsoft Data Access Components (MDAC) 2000.086.1830.00
(srv03_sp1_rtm.050324-1447)
Microsoft MSXML 2.6 3.0 5.0 6.0
Microsoft Internet Explorer 6.0.3790.1830
Microsoft .NET Framework 2.0.50727.42
Sistema operativo 5.2.3790













Respuesta Responder a este mensaje
#5 Javier Loria
10/10/2006 - 06:39 | Informe spam
Hola Cristina:
Creas la vista como:
CREATE VIEW MiVista
AS
SELECT Cliente, Producto, CP
FROM dbo.Clientes
WHERE Producto IN (11, 13, 14, 22)
AND (Cliente < 1000000)
GO
o sea sin el ORDER BY ni el TOP, y luego cuando la usas haces:
SELECT * FROM MiVista
ORDERY BY CP
Espero te sirva,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"cris" wrote in message
news:%23xdC4P%
me pones un ejemplo como el que os he puesto?

"Javier Loria" escribió en el mensaje
news:OGhqrB%
Hola Cristina:
No es un problema es parte de las diferencias entre SQL 2005 y 2000 y
esta documentada.
El truco de usar TOP 100 PERC/ORDER BY en las vistas ya no funciona en
2005, esto es porque las vistas son tablas virtuales y al igual que las
tablas no deben ser ordenadas. Al incluir una sentencia de ORDER BY se
obligaba al servidor a crear un cursor para mantener el orden. Ahora
tienes que poner el ORDER BY afuera a sea cuando consultas la vista.
Saludos,

Javier Loria
Costa Rica-MVP
Solid Quality Learning

"cris" wrote in message
news:%
Tengo el siguiente problema extraño!!!.

Una vista en SQL 2005 . Vistas - Modificar - Ejecutar

SELECT TOP (100) PERCENT Cliente, Producto, CP
FROM dbo.Clientes
WHERE Producto IN (11, 13, 14, 22)
AND (Cliente < 1000000)
ORDER BY CP

Hasta aqui todo OK, ya que me los ordena de AZ los CP. Grabo vista

Si ahora hago Vistas - Abrir Vista, NO ME LOS ORDENA POR CP ni por nada.

Que puedo mirar??

Datos:
Microsoft SQL Server Management Studio 9.00.2047.00
Herramientas cliente de Microsoft Analysis Services
2005.090.2047.00
Microsoft Data Access Components (MDAC) 2000.086.1830.00
(srv03_sp1_rtm.050324-1447)
Microsoft MSXML 2.6 3.0 5.0 6.0
Microsoft Internet Explorer 6.0.3790.1830
Microsoft .NET Framework 2.0.50727.42
Sistema operativo 5.2.3790









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