Lucas's profileLucas Souza [MCP | MCTS ...PhotosBlogListsMore ![]() | Help |
|
|
September 12 O que são Views no SQL Server¿Simplismente pode ser descrito como uma ou mais instrução SELECT contendo schema, colunas, atributos, etc. As views são comumente conhecidas como tabelas virtuais as quais tem por objetivo capturar colunas de tabelas existentes no banco de dados, desta forma podemos definir o nome específico da view e armazenar-la no banco de dados. A maior vantagem das Views é criar-las contendo uma ou mais instrução SELECT, a sintaxe da criação da view mostra-se abaixo: [ WITH <view_attribute> [ ,...n ] ] AS select_statement [ WITH CHECK OPTION ] [ ; ]
<view_attribute> ::= { [ ENCRYPTION ] [ SCHEMABINDING ] [ VIEW_METADATA ] }
Apartir do momento que sabemos que as views armazenam instruções SELECT definida pelo usuário, além disso vale lembrar que as instruções SELECT pode ser referenciada por tabelas, views ou até mesmo funções.
BENEFÍCIOS o Nos garante um mecanismo de segurança que restringe aos usuários ter permissões nos dados em uma ou mais tabelas; o Garante os desenvolvedores visualizarem apenas os dados armazenados em tabelas lógica; o Mineração de dados através de cargas de trabalho; o Data warehouses; o Data marts; o Armazenar e originar processamento analítico online (OLAP) o Decisão para suportar cargas de trabalho
LIMITAÇÕES o Usar a cláusula OPTION; o Usar a palavra-chave INTO; o Referenciar tabelas temporárias, variáveis ou outros tipos; o Contêr a cláusula ORDER BY ao menos que específique o operador TOP; o Contêr a cláusula COMPUTE ou COMPUTE BY. OBS: As views podem contêr múltiplas instruções SELECT juntamente utilizadas com os operadores UNION ALL ou UNION; Exemplo¹: -- Esta view tem por objetivo a exibição de dois campos para cada tabela distinta, sendo elas: Product, Address, Customer CREATE VIEW dbo.ViewTeste AS SELECT ProductID, Name FROM AdventureWorks.Production.Product UNION ALL SELECT AddressID, City FROM AdventureWorks.Person.Address UNION ALL SELECT CustomerID, CustomerType FROM AdventureWorks.Sales.Customer
Exemplo²:
-- Esta view tem nos mostra a soma do Total de impostos da tabela SalesOrderHeader, sendo assim nos trazendo apenas os resultados em que a data esteja acima do ano 1992, mês 11, dia 25. CREATE VIEW dbo.TotalVendas AS SELECT TOP 100 SalesPersonID, SUM(TotalDue) AS TotalSales FROM Sales.SalesOrderHeader WHERE OrderDate > CONVERT(DATETIME,'19921125',101) GROUP BY SalesPersonID; GO
Se por acaso for necessário utilizar operações de indexes nas views é necessário seguirmos alguns passos, por exemplo:
o Verifique a configuração da opção ANSI_NULLS se está corretamente assinalada para todas a tabelas existentes a qual irá ser referenciada dentro da view; o Verifique a configuração ANSI_NULLS se está corretamente assinadada para a sessão atual que mostra-se dentro da tabela; o Verifique as propriedades ANSI_NULLS e QUOTED_IDENTIFIER se está corretamente assinaladas as sessões atuais mostradas na tabela; o Verifique se a definição da view é deterministica, para mais informações, veja: Deterministic and Nondeterministic ; o Crie a view usando a opção WITH SCHEMABINDING; o Verifique suas sessões com a opção SET e vejam como estar corretamente mostrada na tabela; o Crie finalmente o index clustered unique dentro na view.
[]´s
Lucas Souza
TrackbacksThe trackback URL for this entry is: http://souzalucas.spaces.live.com/blog/cns!289B02192542DA52!570.trak Weblogs that reference this entry
|
|
|