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

#6 cris
10/10/2006 - 10:34 | Informe spam
Que significa y luego cuando la usas haces...??

Te comento el progrma que tengo en VB. Saco un listado de las vistas a mano
izquierda para que solamente con un click de raton, en la parte derecha
saque los datos.

Como lo hago en SQL entonces?, debo tener 2 vistas?, una sin ordenar y otra
ordenada??

"Javier Loria" escribió en el mensaje
news:
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
#7 Carlos Sacristán
10/10/2006 - 11:05 | Informe spam
A lo que Javier se refiere es que en tu programa, cuando vayas a mostrar
los datos de una vista en concreto, a la sentencia

SELECT * FROM nombre_vista

tendrás que añadirle el ORDER BY campo


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"cris" escribió en el mensaje
news:%
Que significa y luego cuando la usas haces...??

Te comento el progrma que tengo en VB. Saco un listado de las vistas a
mano izquierda para que solamente con un click de raton, en la parte
derecha saque los datos.

Como lo hago en SQL entonces?, debo tener 2 vistas?, una sin ordenar y
otra ordenada??

"Javier Loria" escribió en el mensaje
news:
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
#8 cris
10/10/2006 - 11:48 | Informe spam
El programa lo unico que hace es mostrar las vistas del SQL, solamente eso,
por eso decia que entonces saldran todas las vistas.

"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:ea%
A lo que Javier se refiere es que en tu programa, cuando vayas a
mostrar los datos de una vista en concreto, a la sentencia

SELECT * FROM nombre_vista

tendrás que añadirle el ORDER BY campo


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"cris" escribió en el mensaje
news:%
Que significa y luego cuando la usas haces...??

Te comento el progrma que tengo en VB. Saco un listado de las vistas a
mano izquierda para que solamente con un click de raton, en la parte
derecha saque los datos.

Como lo hago en SQL entonces?, debo tener 2 vistas?, una sin ordenar y
otra ordenada??

"Javier Loria" escribió en el mensaje
news:
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





















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