Arquivos

Posts Etiquetados ‘ViewSistema’

SQL Server – Usando as views de sistema

Olá amigos!

Hoje falarei brevemente sobre um assunto bem interessante no SQL Server que são as views de sistema com informações de schema do banco de dados.

O que são views de sistema?
O Sql Server disponibiliza uma série de views para auxílio na localização de schema de tabelas, views, procedures, entre outras necessidades, facilitando em muito a localização e também a utilização dessas informações

Para quê servem?
Digamos que seja necessário saber em qual tabela temos uma coluna contendo a string “name” em seu nome. Uma forma de resolver isto seria usando a view sysobjects e a view syscolumns, conforme exemplo abaixo:

SELECT * FROM SYSOBJECTS OBJ
INNER JOIN SYSCOLUMNS COL
ON OBJ.ID = COL.ID
WHERE COL.NAME LIKE '%NAME%'

Ótimo, isso funciona perfeitamente, porém existe uma forma mais fácil de fazer isto, usando as views de sistema. Em vez de usar isto, use isto:

SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%name%'

A vantagem mais notável é a sintaxe simplificada ao mesmo tempo uma gama maior de informações retornadas sem necessidade de fazer outros joins com outras views, como é necessário fazer quando usamos as views como sysobjects, syscolumns, etc. Sempre que forem utilizar estas views, é preciso usar o nome qualificado INFORMATION_SCHEMA.nome_da_view.

Abaixo uma lista das principais views do INFORMATION_SCHEMA e seus objetivos:

Nome Descrição
CHECK_CONSTRAINTS Informações sobre as constraints das tabelas
REFERENTIAL_CONSTRAINTS Retorna uma linha para cada FOREIGN KEY no banco selecionado
ROUTINES Todas as funções definidas pelo usuário e stored procedures
COLUMN_PRIVILEGES Colunas com previlégios garantidos para ou pelo usuário atual
ROUTINE_COLUMNS Informações sobre as colunas usadas nas procedures e functions
COLUMNS Informações sobre todas as colunas
SCHEMATA Informações sobre os bancos de dados
CONSTRAINT_COLUMN_USAGE Colunas usadas nas constraints
TABLE_CONSTRAINTS Todas as restrições das tabelas
CONSTRAINT_TABLE_USAGE Tabelas que possuem uma restrição definida
TABLE_PRIVILEGES Tabelas com previlégio garantido para ou pelo usuário atual
TABLES Informações sobre as tabelas
DOMAINS Todos os tipos de dados definidos pelo usuário
VIEW_COLUMN_USAGE Informações sobre colunas utilizadas nas views
KEY_COLUMN_USAGE Colunas restringidas como uma chave
VIEW_TABLE_USAGE Tabelas usadas em uma View
PARAMETERS Todos os parametros para funções definidas pelo usuário e stored procedures
VIEWS Informações sobre as Views

Por hora é isso, façam seus selects e avaliem a necessidade e utilização de cada uma das views citadas.

Referência: http://msdn.microsoft.com/en-us/library/ms186778.aspx

[]‘s

Colunas usadas nas constraints
CategoriasSQL Tags:,
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.