Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Como funcionan las Vistas

Estas en el tema de Como funcionan las Vistas en el foro de SQL Server en Foros del Web. Utilizo dentro de mis reportes(crystal) vistas que tengo creadas en la base de datos .... ahora bien mi pregunta es como funcionan las vistas ... ...
  #1 (permalink)  
Antiguo 17/06/2008, 07:51
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 10 meses
Puntos: 0
Como funcionan las Vistas

Utilizo dentro de mis reportes(crystal) vistas que tengo creadas en la base de datos ....

ahora bien mi pregunta es como funcionan las vistas ...
tengo una tabla de clientes la cual esta relacionada con otras tablas referenciales en su mayoria, pues bien yo hago una vista donde hago join entre estas tablas para poder tener la informacion de la tabla maestra y las tablas relacionadas en un solo origen de datos, hasta aca todo bien, sin embargo la verdad esta vista la uso para un cliente a la vez, y creo que al momento de ejecutar la vista carga los datos de todos los clientes, si es asi esto no es nada optimo, pues bien como hago para forzar que solo se ejecute la vista para un cliente en particular, algo asi como pasar parametros ....

Gracias por adelantado .....
  #2 (permalink)  
Antiguo 17/06/2008, 09:41
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Respuesta: Como funcionan las Vistas

Si agregas una clausula where filtrando el cliente en tu select, no se cargaria la tabla completa.

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 17/06/2008, 16:41
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Como funcionan las Vistas

Hola amigo, claro que si tienes razon pero.... veo que no me explique bien ....

tengo una vista en mi bd ...algo asi

select * from clientes
order by nombre

ok esta es una vista digamos general de todos mis clientes, pues bien lo ocurre es que cada vez que la llamo filtrada desde mis programas sospecho que primero ejecuta toda la consulta para luego filtrarla, eso no es optimo lo ideal seria algo asi

select * from clientes
where id_cliente=Parametro_Id

asi a nivel de servidor solo se busca el cliente buscado con el parametro_id

el caso es que con las vistas segun parece no se puede usar variables o mejor dicho parametros con lo procedimientos almacenados si .... esa son las preguntas:

1. en efecto la primera consulta llama todos los registros de la tabla pero si la llamo desde un programa o por ejemplo crystal report restringiendo a un solo cliente, aun asi primero el servidor ejecuta la consulta general para luego filtrarla ...es esto cierto ...?

2. se pueden usar parametros a una vista ....?
  #4 (permalink)  
Antiguo 17/06/2008, 17:35
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Como funcionan las Vistas

Pues ya no me quedo claro................

Una vista, sirve para UNIR mas de 1 tabla y hacer el efecto de un arreglo de registros de mas de 1 tabla.

Si yo hago una vista con: SELECT * FROM CLIENTES ORDER BY NOMBRE (tengo mucho mis dudas sobre el ORDER BY en una vista), pues seria exactamente lo mismo que consultar la tabla origen y no consultar la vista.

2. se pueden usar parametros a una vista ....?

R= NO, puede utilizar funciones de usaario (UDF).

Aqui lo importante es saber, ¿Que es lo que desea obtener?
  #5 (permalink)  
Antiguo 18/06/2008, 08:53
 
Fecha de Ingreso: julio-2006
Mensajes: 55
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Como funcionan las Vistas

Hola Iislas , gracias por tu respuesta, de acuerdo select * from clientes es lo mismo que consultar la tabla como tal, coloque asi el codigo para no entrar en complejidades innecesarias por supuesto que es enlaza varias tablas la vista ahora bien no entiendo bien a que te refieres con lo del ORDER BY NOMBRE y por otro lado lo de las funciones de usuario no lo conozco, podrias colocar un ejemplo please :::..

Gracias ....
  #6 (permalink)  
Antiguo 18/06/2008, 13:50
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Respuesta: Como funcionan las Vistas

Que dudo mucho que en una vista, puedas colocar un ORDER BY, al momento de crearla.

CREATE FUNCTION fn_RegresaTablaCliente (@Ciudad int)
RETURNS TABLE
AS
BEGIN
RETURN(SELECT * FROM CLIENTE WHERE CIUDAD = @Ciudad))
END

Para llamar la funcion anterior.

SELECT * FROM dbo.fn_RegresaTablaCliente(125)
WHERE ApellidoMaterno = 'Maradona'

Donde 125, puede ser el ID de Buenos Aires Argentina

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:18.