views para sql server

Post on 12-Jul-2016

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Views Para SQL Server

TRANSCRIPT

Claudio Stein Junior

Views são instruções SELECT já pré-definidas e armazenadas no banco de dados

CREATE VIEW <view_name> AS<instrução_SELECT>

CREATE VIEW V_TAB1ASSELECT COD , NOME FROM TABELA1

SELECT CODFROM V_TAB1WHERE NOME = ‘Claudio’

Detalhe: no exemplo acima só poderíamos utilizar os dois campos da view, COD e NOME. Mesmo que a tabela base (TABELA1) possua mais campos não poderíamos nos referir a eles, pois eles não constam na definição da view.

SELECT * FROM TABELA1

Esta prática, além de não ser recomendada por motivos de performance, pode gerar um problema: vamos supor que futuramente alguém inclua um campo na tabela base (TABELA1). Mesmo com o * na definição da view o novo campo NÃO é retornado. É necessário apagar a view e criá-la de novo. É importante também lembrar que todos os campos (calculados ou não) referenciados na view devem possuir um nome, que deve ser único na definição da view.

Outro ponto importante sobre as views: não podemos utilizar a cláusula ORDER BY na definição da view. Como uma exceção: quando se utiliza TOP para limitar os registros:

CREATE VIEW V_TAB1ASSELECT TOP 100 COD , NOMEFROM TABELA1ORDER BY NOME

Também não podemos utilizar as cláusulas COMPUTE, COMPUTE BY e INTO dentro de uma view.

Supondo que a TABELA1, utilizada na criação da view V_TAB1, possua somente os dois campos utilizados na view , COD e NOME. Podemos fazer um instrução INSERT normalmente, como se fosse somente uma tabela:

INSERT INTO V_TAB1 VALUES(1,’VANESSA’)

Quando utilizarem esta prática, tomem cuidado com campos calculados e expressões de agregação feitos na definição da view.

As views também podem se referenciar a outras tabelas de outros banco de dados de outros servidores SQL Server, ou mesmo de um arquivo do Access ou até uma tabela do Oracle. A estas views damos o nome de particioned views e possuem algumas características especiais

A partir do SQL Server 2000 também podemos criar um índice para a view, chamada de indexed view, que melhoram significativamente a performance

As views também são uma importante ferramenta para simplificar suas instruções SELECT: ao invés de várias subquery’s, podemos encapsular toda um lógica dentro de uma view, tornando assim o código final da instrução bem mais legível.

Por último, as views podem ser utilizadas para evitar o acesso direto à tabela. Por exemplo: o usuário X não pode ver o campo SALARIO da tabela FUNCIONARIO. Como fazer isto? Crie uma view sem incluir este campo e dê permissão de consulta à view ao usuário X sem liberar o acesso físico à tabela, ocultando assim o campo SALARIO.

top related