Ask Learn
Preview
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
View é um dos recursos mais poderosos do banco de dados relacional. Podemos usar as Views como sinônimos de tabela, facilitando o acesso aos dados. Por exemplo, vamos usar uma tabela de usuário definida com dois campos:
Poderíamos simplificar a definição da tabela usando uma view:
Assim, podemos acessar a tabela de usuários diretamente pela tabela ou através da View:
O desempenho é praticamente idêntico entre as duas consultas, pois a View é somente uma “definição”. Se você tiver curiosidade, pode olhar a DMV sys.dm_exec_cached_plans e observar que a View é armazenada como uma árvore sintática (parse tree) ao invés de um plano de execução (compiled plan).
Podemos usar a View para realizar operações DML. Por exemplo, vamos inserir registros na tabela:
WOW!!! Note que estou inserindo registros na tabela “tabela_usuarios” usando a view “vwUsuarios”, assim como poderia ter executado outros comandos DML (UPDATE e DELETE) na view.
Muitos já ouviram falar sobre as CTE, também conhecidas como Common Table Expression. Gosto de pensar que as CTE são as “Inline-View” e, portanto, seria equivalente realizar o seguinte comando:
Esse único comando define uma expressão chamada “cteUsu” que existe somente no contexto da execução do SELECT. É semelhante a View, pois representa apenas uma definição. É diferente porque a definição é temporária, sem necessidade de guardar o metadado. O desempenho é igual a usar o acesso a uma tabela ou a view.
Sinônimo é a forma mais fácil de “renomear” um objeto. Eu posso usar um sinônimo para a tabela de usuários:
Nesse caso não é possível redefinir o nome dos campos e o SELECT retorna os campos iguais a definição da tabela.
Por outro lado, podemos criar sinônimos para Stored Procedures e Functions. A parte mais divertida do sinônimo é que podemos referenciar objetos em outros banco de dados (inclusive em outros servidores, se usarmos Linked Server).
Esse artigo dá início a série “Another point of VIEW” com o objetivo de revelar uma perspectiva diferente sobre as Views. Assim como elas resolvem problemas, elas também escondem algumas armadilhas.
Nos próximos artigos, abordarei a diferença entre View e Function.
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign in