Vistas en SQL Server


Vistas en SQL Server


Las vistas en Sql Server le proporcionan una forma de guardar y preparar los datos para que los utilice el usuario final. En vez de presentar las tablas completas, las vistas no pueden ajustar para que muestren el contenido deseado. Se pueden utilizar para manipular datos, presentaciones diferentes por una serie de uniones, proyecciones y selecciones a tráves de los cuales los usuarios no tengan que especificarlos a la hora de efectua operaciones.

Las reglas para crear vistas son los siguientes:
  • Las vistas únicamente se pueden crear en la base de datos actual.
  • Los nombres de las vistas han de ser únicos para cada usuario y seguir las reglas de nomenclatura definida por los identificadores.
  • Se pueden basar en otras vistas o en procedimientos que hagan referencias a vistas.
  • No puede crear vistas en tablas temporales o crear vistas temporales
  • No hay que especificar los nombres de las columnas, ya que SQL Server asigne a las columnas el mismo nombre y tipos de datos que tiene las columnas a las que hace referencia, a menos que quiera incluir con el mismo nombre.
  • necesitará los permisos oportunos (CREATE VIEW) establecidos por el diseño de la base de datos y todos los permisos relacionados con las tablas a vistas que se va a utilizar como fuente de datos de su vista.

Crear vistas utilizando el Administrador corporativo

Para crear una nueva vista tendrá que abrir la carpeta Base de Datos
Se da clic con el botón derecho en la carpeta Vistas y selecciona nueva vista del menú emergente. Se abrirá una vista vacía. Para arrastrar las tablas que desee desde el Administrador corporativo y saltarlas en el panel Diagrama de la nueva vista a hacer clic en el signo (*) de la barra de herramientas. Seleccione los campos que desea ver del panel cuadrícula y active las opciones deseadas. Automáticamente creará las declaraciones SQL.

Los resultados aparecerán en el panel Mostrar resultados.

También puede configurar distintas opciones haciendo clic con el botón derecho y escogiendo propiedades del menú emergente o pulsando el botón propiedades que se encuentra en la barra de herramientas.

Crear vistas en Transact-SQL

Transact-SQL tiene tres declaraciones para trabajar con las vistas:
  • Create View
  • Alter View
  • Drop View

Para crear una vista se utiliza la sentencia CREATE VIEW con la siguiente sintáxis:

CREATE VIEW view_name [(column [,...n])]
[WITH ENCRYPTION]
AS
       select-statement
[WITH CHECK OPTION]

La columna WITH ENCRYPTION se utiliza para proteger las vistas importantes con el fin de que no se pueda obtener su definición. Con WITH CHECK OPTION le asegura de que estén presentes las filas en el conjunto resultante de la vista, aún en el caso de que los datos se actualicen a tráves de la vista, independientemente si criterios en la cláusula WHERE.

CREATE VIEW V_Cliente AS
    Select codigo = cod_cliente,
                nombre = convert(varchar(30), Nombre+' , '+Calificacion',
                 nivel = CASE Calificacion
                   When 'A' Then 'Excelente'
                   When 'B' Then 'Muy Bueno'
                   When 'C' Then 'Bueno'
               End
     From T_Clientes 

CREATE VIEW C_ListaProductos AS
     SELECT Cod_producto, Nombre FROM T_productos
     

Otro ejemplo de uso de creación de una vista: Creación de una vista donde cuente el total facturado.

CREATE VIEW V_Totalfactura AS
      Select [Codigo_Cliente] = cod_cliente,
                  [Total_Factura] = SUM(Total_factura)
      From Cabfactura
      Group By Cod_cliente
      Having SUM(Total_factura) > 0


Otro ejemplo crear una vista para almacenar los datos del cliente: DatosClientes

CREATE VIEW DatosClientes
AS
Select Convert(varchar(12), fecha_ing, 109)) AS "Fecha de Ingreso",
           "Estado Civil" = CASE Est_Civil
                     WHEN 'S' THEN 'Soltero'
                     WHEN 'C' THEN 'Casado'
                     WHEN 'D' THEN 'Divorciado'
                     WHEN 'V' THEN 'Viudo'
      END,
   Direccion = convert(varchar(20), RTRIM(LTRIM(Direccion)))
  From T_Clientes

    


Comentarios

Entradas más populares de este blog

Base de datos en SQL Server por Lcdo. José Fernando Frugone Jaramillo

Borrar registros de una tabla (Delete - SQL Server)

Las subconsultas usando sentencias Select