NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalArtigosSQL Server 2005 › Capítulo 09 : 22
Quer receber novidades e e-books gratuitos?
« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »
SQL Server 2005 - CURSO COMPLETO
Autor: Júlio Battisti
Lição 154 - Capítulo 09 - CRIANDO VIEWS COM A JANELA DE EXECUÇÃO DE COMANDOS T-SQL

Criar Views com Janela de Execução de Comandos T-SQL é simplesmente uma questão de utilizar o comando CREATE VIEW. Vamos estudar este comando neste item.

A sintaxe para o comando CRETE VIEW é a seguinte:

CREATE VIEW [ < database_name > . ] [ < owner > . ] view_name [ ( column [ ,...n ] ) ]

[ WITH < view_attribute > [ ,...n ] ]

AS

select_statement

[ WITH CHECK OPTION ]

Simplificando a sintaxe apresentada no Books OnLine, teríamos o seguinte:

CREATE VIEW Nome_da_View

AS

Comando SQL

Por exemplo, para criar uma View chamada Pedidos_Teste, que retorna os campos OrderID, OrderDate, ShipCountry e ShipCity da tabela Orders do Banco de Dados Northwind, utilizamos o seguinte comando:

USE Northwind

GO

CREATE VIEW Pedidos_Teste

AS

SELECT OrderID, OrderDate, ShipCountry

FROM Orders

É importante que você coloque o comando GO, antes do comando CREATE VIEW, caso o comando CREATE VIEW não seja o primeiro comando. Se não utilizarmos o comando GO, será emitida a seguinte mensagem de erro:

Server: Msg 111, Level 15, State 1, Line 2
‘CREATE VIEW’ must be the first statement in a query batch.

O mais importante para a criação de Views, utilizando a janela de execução de comandos T-SQL, é conhecer a linguagem T-SQL. Pois uma View nada mais é do que um comando T-SQL gravado em um Banco de Dados. Isso só reforça o que eu insisti, exaustivamente, nos exemplos anteriores, ou seja, a importância de conhecer e dominar os comandos T-SQL.

Quando criamos uma View, o que é gravado no Banco de Dados é apenas o comando T-SQL, além de informações sobre permissões de acesso. Os dados, que a View retorna, são obtidos a partir das tabelas do Banco de Dados, toda vez que a View for executada.

A permissão para utilizar o comando CREATE VIEW é atribuída para as roles de Banco de Dados db_owner e db_ddladmin, além da role de servidor sysadmin.

Podemos fazer com que o texto da View, que é armazenado na tabela syscomments, seja criptografado. Isto impede que o código seja acessado simplesmente através de um SELECT na tabela syscomments. Ou melhor, o código até que pode ser acessado, só que o texto estará criptografado, impedindo que seja lido, a menos que a criptografia seja quebrada. A seguir, um exemplo de criação de uma View com a utilização da opção WITH ENCRYPTION:

CREATE VIEW Pedidos_Criptografada

WITH ENCRYPTION

AS

SELECT OrderID, OrderDate, ShipCountry, ShipCity

FROM Orders

WHERE ShipCountry = ‘Alemanha’

Vamos a um exemplo: criar uma view chamada Média_Vendas_por_Ano. Esta View será criada no banco de dados NwindAccess.  Esta view deve exibir um registro para cada ano em que existem pedidos e o valor médio de vendas para cada ano.

O detalhe nesta View é que temos que utilizar dados da tabela Pedidos e da tabela Detalhes do Pedido. Pois os cálculos do total por pedido, os quais vão possibilitar o cálculo da média anual, são realizados a partir dos campos da tabela Detalhes do pedido. Além disso, teremos que utilizar a função Year, para extrair apenas o ano do campo DataDopedido. Depois, agrupamos o campo ano e utilizamos a função AVG na coluna que calcula o valor das vendas.

Para criar esta View, siga os passos indicados a seguir:

1. Abra a janela de execução de comandos T-SQL.

2. Digite e exe­cute o seguinte comando:

USE NwindAccess

GO

CREATE VIEW Média_Vendas_por_Ano

AS

SELECT    YEAR(DataDoPedido) AS [Ano do Pedido],

          AVG(([Quantidade] * [PreçoUnitário])* (1 -[Desconto])) AS [Média Anual]

FROM      [Pedidos]


   INNER JOIN

   [Detalhes do Pedido] ON [Pedidos].[NúmeroDoPedido] =

   [Detalhes do Pedido].[NúmeroDoPedido]


GROUP BY YEAR(DataDoPedido)

Agora vamos testar se a View Média_Vendas_por_Ano está retornando os resultados desejados.

3. Execute o seguinte comando:

SELECT * FROM Média_Vendas_por_Ano

Você deve obter os resultados indicados na Figura 9.31.

Curso Completo de SQL Server 2005 - Júlio Battisti
Figura 9.31 Média anual de vendas.

Já que estamos com janela de execução de comandos T-SQL aberta, vamos aprender a atribuir permissões para Views e depois testar estas permissões.

Para uma discussão aprofundada sobre o modelo de segurança e atribuição de permissões, consulte o Capítulo 6 deste livro.

No Capítulo 6, havíamos dado permissão para os usuários SERVIDOR\user1 e SERVIDOR\user2 acessar a instância SERVIDOR\SQL2005. Agora, vamos adicioná-los como usuários com permissão de acesso ao Banco de Dados NwindAccess, da instância SERVIDOR\SQL2005.

1. Você ainda deve estar com a janela de execução de comandos T-SQL aberta e logado na instância SERVIDOR\SQL2005. Execute o seguinte comando:

USE NwindAccess
GO
exec sp_grantdbaccess ‘SERVIDOR\user1’
exec sp_grantdbaccess ‘SERVIDOR\user2’

Agora vamos dar permissão de acesso para o usuário SERVIDOR\user1 para a View Média_Vendas_por_Ano, e vamos negar permissão de acesso a esta View, para o usuário SERVIDOR\user2.

2. Para dar permissão de acesso ao usuário SERVIDOR\user1, execute o seguinte comando:

GRANT SELECT ON Média_Vendas_por_Ano
TO [SERVIDOR\user1]

3. Para negar permissão de acesso ao usuário SERVIDOR\user2, execute o seguinte comando:

DENY SELECT ON Média_Vendas_por_Ano
TO [SERVIDOR\user2]

Se o usuário SERVIDOR\user2 tentar executar o seguinte comando:

SELECT * FROM Média_Vendas_por_Ano

o usuário obterá a seguinte mensagem de erro:

Server: Msg 229, Level 14, State 5, Line 1

SELECT permission denied on object ‘Média_Vendas_por_Ano’, database ‘NwindAccess,

A mensagem nos informa que o usuário não tem permissão de acesso. Isto confere com as configurações de permissões que fizemos.

4. Feche a janela de execução de comandos T-SQL e feche o SQL Server Management Studio.

No próximo capítulo e no Apêndice, falarei ainda mais sobre a linguagem T-SQL e também sobre funções disponíveis. No exemplo anterior, utilizamos a função Year, para extrair apenas o ano do campo OrderDate. No próximo capítulo, veremos uma série de funções que podem ser utilizadas em comandos T-SQL.

« Lição anterior Curso Completo de SQL Server 2005 - Júlio Battisti Δ Página principal Curso Completo de SQL Server 2005 - Júlio Battisti ¤ Capítulos Curso Completo de SQL Server 2005 - Júlio Battisti Próxima lição »

você conhece a universidade do access?

Universidade do Access - Curso Completo de Access
com tudo para você dominar o Access - do Básico ao
Avançado - até a Criação de Sistemas Profissionais
Completos - Passo a Passo - Tela a Tela

Aplica-se ao Access 2019, 2016, 2013 e 2010!

13 Cursos - 574 Vídeo-Aulas - 63:32 horas

Para todos os detalhes, acesse:

https://juliobattisti.com.br/universidade-do-access.asp

Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2019 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI