VI.

VISTAS

VISTAS EN SQL 2008

Una vista es una tabla virtual cuyo contenido esta definido por una consulta. AI igual que una tabla real, una vista consta de un conjunto de columnas y filas de datos con un nombre. Sin embargo, a rnenos que este indexada, una vista no existe como conjunto de valores de datos almacenados en una base de datos. Las filas y las columnas referencia de datos proceden de tablas a las que se hace

en la consulta que define la vista y se producen de forma dinarnica cuando se hace

referencia a la vista. Una vista actua como filtro de las tablas subyacentes a las que se hace referencia en ella. La consulta que define la vista puede provenir de una la base de datos actual u otras distribuidas utilidad,
0

de varias tablas,

0

bien de otras vistas de las consultas

bases de datos. Asimismo,

es posible utilizar

para definir vistas que utilicen datos de orfgenes heterogeneos, datos de estructura

Esto puede resultar de

por ejemplo, si desea combinar

similar que proceden de distintos

servidores, cada uno de los cuales almacena los datos para una region distinta de la organizacion. No existe ninguna restriccion a la hora de consultar vistas y muy pocas restricciones a la hora de modificar los datos de estas. En esta ilustracion se muestra una vista basada en dos tablas.

MJiIIl"'e!isilO'

SlldMiIlI)

LastiNlalme N()'I')IJ1lel" o,'!,Ihellply Silelice ,I;;!utIJerre:z: Damstr,a

i'ol'lilifrillllelNJalme

SSN

.l5hen

.l 2: 3:
~,

5:

RDberta
Vel'

5:

~ ~ ~ ~

1

IE R
C

:2~5,1~f9<l'5' !JOM~'flN
<l:2<lS7f30

i, i, ,i

Y 5

!J69'2C12a:S
695:255908

~a\l'dl1ier' Whelpl'(

:5pence'

1E:llgilleert:ngl 1E:llgirleen:nQj 1E:llgi[1een:n~;:

I

1
Fuente: Libros en pantalla de SQL Server 2008 de Microsoft Corporation [Edlclon de Enero de 2009)

tener una vista nos simplifica esta tarea. • Los nombres de las vistas deben seguir las reglas que se aplican a los identificadores y ser unicos para cad a esquema. considere las siguientes indicaciones: • Solo puede crear vistas en la base de datos actual. y si actualizamos la tabla estos cam bios seran visibles desde la vista. Microsoft SQL Server permite anidar no debe superar los 32 niveles. las tablas y las vistas a las que se haga referencia desde la nueva vista pueden encontrarse en otras bases de datos e. 2 Fuente: Libros en pantalla de SQL Server 2008 de Microsoft Corporation [Edlclon de Enero de 2009) . dependera misma (dependera de si el conjunto no). incluso. de otras vistas. como hemos dicho el modelo relacional no es el mas comedo para visualizar los datos. Nota: No siempre podremos actualizar los datos de una vista. Adernas. en otros servidores. pero no a toda la tabla. Es posible que el limite real del de la vista y de la memoria de vistas sea inferior en funcion de la complejidad AFTER no se pueden asociar con las vistas. de la complejidad de la 0 de resultados tiene acceso a la clave principal de la tabla Antes de crear una vista. Comodidad. si la vista se define mediante consultas distribuidas. 10 que nos puede lIevar a tener que escribir complejas sentencias SQL. el nombre debe ser distinto del de las tablas incluidas en ese esquema. • • No puede asociar con las vistas reglas ni definiciones Los desencadenadores los desencadenadores DEFAULT.Las principales razones por las que podemos crear vistas son: • Seguridad. • Es posible generar vistas dentro vistas. son consultas a los datos que hay en las tablas. estamos actualizando realmente la tabla. Sin embargo. Las vistas no tienen una copia ffsica de los datos. solo se pueden asociar INSTEAD OF. nos pueden informacion • interesar que los usuarios tengan acceso a una parte de la que hay en una tabla. por 10 que si actualizamos los datos de una vista.EI anidamiento anidamiento disponible.

a menos que se quite cambie esa vista de forma ALTER TABLE sobre un error si que deje de tener un enlace de esquema.• La consulta que define la vista no puede incluir las clausulas COMPUTE ni COMPUTE BY. aunque no cambie su nombre. Adernas. aunque una definicion de vista puede incluir una consulta de texto completo si esta hace referencia a una tabla configurada para la lndizacion de texto completo. • La consulta que define la vista no puede incluir la clausula OPTION que especifica una sugerencia de consulta. 3 Fuente: Libros en pantalla de SQL Server 2008 de Microsoft Corporation [Edlclon de Enero de 2009) . • Debe especificar el nombre de todas las columnas de la vista en el caso de que: I. Una columna de una vista hereda los tipos de datos de la columna de la que deriva. Desee darle a una columna de la vista un nombre distinto del de la columna de la que deriva. a menos que tam bien haya una clausula TOP en la lista de seleccion de la instruccion SELECT. • Si una vista no se crea con la clausula SCHEMABINDING. Y tampoco puede incluir la palabra clave INTO. Dos 0 mas columnas de la vista tuviesen. mas tablas diferentes tienen el mismo nombre). Alguna de las columnas de la vista derive de una expresion aritmetica. las instrucciones tablas que participan en vistas que tienen enlaces de esquemas provocaran estas instrucciones afectan a la definicion de la vista. • No puede emitir consultas de texto completo en una vista. • La consulta que define la vista no puede incluir la clausula ORDER BY. Las vistas. No se pueden crear vistas temporales. debe ejecutarse cuando se realicen cam bios en los objetos definicion subyacentes sp_refreshview a la de la vista que afecten de esta. columnas de dos III. (Tam bien puede cambiar el nombre de las columnas en la vista). integrada 0 una funcion una constante. el mismo nombre debido a que la definicion de la vista incluye una cornbinacion y las 0 (normalmente. No se pueden definir definiciones de fndice de texto completo en las vistas. la vista puede generar resultados inesperados cuando se realiza una consulta. II. De 10 contra rio. en caso contra rio. las tablas 0 ni vistas dentro de tablas temporales. que participan en una vista creada con la clausula 0 las funciones SCHEMABINDING no se pueden quitar. • • • • La consulta que define la vista no puede incluir la clausula TABLESAMPLE.

fx_alquiler. En este caso queremos afiadir los campos fx_alquiler y fx_devolucion ALTER VIEW vAlquileres AS SELECTnombre. Para crear una vista debemos utilizar la sentencia CREATE VIEW. tClientes WHERE ( tAlquileres.codigo_cliente = tClientes. CREATEVIEW <nombre_vista> AS «sentencia_select> ). a la vista. matricula FROM tAlquileres. matricula. fx_devolucion 4 Fuente: Libros en pantalla de SQL Server 2008 de Microsoft Corporation [Edlclon de Enero de 2009) . CREATEVIEW vAlquileres AS SELECTnombre. apellidos.CREACION DE VISTAS.codigo ) Si queremos. debiendo proporcionar un nombre a la vista y una sentencia SQL SELECTvalida. Ejemplo: Crear una vista sobre la tabla alquileres. de forma muy parecida de como se realiza con las tablas. en la que se nos muestre el nombre yapellidos del cliente en lugar de su codigo. apellidos. modificar la definicion de nuestra vista podemos utilizar la sentencia ALTER VIEW.

FROM tAlquileres. Para eliminar la vista que hemos creado anteriormente DROP VIEW vAlquileres.codigo_cliente = tClientes. tClientes WHERE ( tAlquileres.codigo ) Por ultimo podemos eliminar la vista a traves de la sentencia DROP VIEW. se utilizarfa: 5 Fuente: Libros en pantalla de SQL Server 2008 de Microsoft Corporation [Edlclon de Enero de 2009) .

Sign up to vote on this title
UsefulNot useful