Lucas's profileLucas Souza [MCP | MCTS ...PhotosBlogListsMore Tools Help

Blog


    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:

    CREATE VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]

    [ 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;
    A view pode ser criada apenas no banco de dados atual e além disso não pode exercer o valor de 1024 colunas

    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

     

     

    Comments

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    Trackbacks

    The trackback URL for this entry is:
    http://souzalucas.spaces.live.com/blog/cns!289B02192542DA52!570.trak
    Weblogs that reference this entry
    • None