Você está na página 1de 17

Claudio Stein Junior

Views

so instrues SELECT j prdefinidas e armazenadas no banco de


dados

CREATE

VIEW <view_name> AS
<instruo_SELECT>

CREATE

VIEW V_TAB1

AS
SELECT COD , NOME FROM TABELA1

SELECT

COD
FROM V_TAB1
WHERE NOME = Claudio

Detalhe:

no exemplo acima s poderamos


utilizar os dois campos da view, COD e
NOME. Mesmo que a tabela base
(TABELA1) possua mais campos no
poderamos nos referir a eles, pois eles
no constam na definio da view.

SELECT

* FROM TABELA1

Esta

prtica, alm de no ser recomendada


por motivos de performance, pode gerar um
problema: vamos supor que futuramente
algum inclua um campo na tabela base
(TABELA1). Mesmo com o * na definio da
view o novo campo NO retornado.
necessrio apagar a view e cri-la de novo.
importante tambm lembrar que todos os
campos (calculados ou no) referenciados na
view devem possuir um nome, que deve ser
nico na definio da view.

Outro

ponto importante sobre as views:


no podemos utilizar a clusula ORDER BY
na definio da view. Como uma exceo:
quando se utiliza TOP para limitar os
registros:

CREATE

VIEW V_TAB1

AS
SELECT TOP 100 COD , NOME
FROM TABELA1
ORDER BY NOME

Tambm

no podemos utilizar as clusulas


COMPUTE, COMPUTE BY e INTO dentro de
uma view.

Supondo

que a TABELA1, utilizada na


criao da view V_TAB1, possua somente
os dois campos utilizados na view , COD e
NOME. Podemos fazer um instruo
INSERT normalmente, como se fosse
somente uma tabela:
INSERT INTO V_TAB1
VALUES(1,VANESSA)

Quando

utilizarem esta prtica, tomem


cuidado com campos calculados e
expresses de agregao feitos na
definio da view.

As

views tambm 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 caractersticas especiais

partir do SQL Server 2000 tambm


podemos criar um ndice para a view,
chamada de indexed view, que melhoram
significativamente a performance

As

views tambm so uma importante


ferramenta para simplificar suas
instrues SELECT: ao invs de vrias
subquerys, podemos encapsular toda um
lgica dentro de uma view, tornando
assim o cdigo final da instruo bem
mais legvel.

Por

ltimo, as views podem ser utilizadas


para evitar o acesso direto tabela. Por
exemplo: o usurio X no pode ver o
campo SALARIO da tabela FUNCIONARIO.
Como fazer isto? Crie uma view sem
incluir este campo e d permisso de
consulta view ao usurio X sem liberar o
acesso fsico tabela, ocultando assim o
campo SALARIO.

Você também pode gostar