Compatibility Views & Catalog Views

Alguma vez você já parou para pensar em como as functions, procedures, constraints, etc ficam armazenadas no banco? Onde fica a definição dos objetos?

No SQL Server 2000 existia uma tabela de sistema chamada syscomments. Essa tabela retornava 1 linha a cada 4000 caracteres que tivesse a definição do objeto.

Por exemplo, vejam o resultado da consulta abaixo:

 

Notem que eu tenho 3 objetos retornados, porém para “montar” a procedure, eu preciso ler as 8 linhas retornadas.

A partir do SQL Server 2005, muitas tabelas de sistemas se tornaram views, com o objetivo de manter a compatibilidade com sistemas legados (Compatibility Views) e elas não devem mais ser utilizadas em novas implementações, pois foram substituídas pelas Catalog Views. São elas que apresentam os metadados dos objetos criados dentro do SQL Server. E por objetos, nesse caso, entenda como: Tabelas, funções, procedures, etc…

As views que retornam as definições são:

  • sql_modules: retorna as definições de Procedures, Views, Functions, Triggers…
  • default_constraints: Como o prórprio nome diz, retorna as definições das constraints default criadas.
  • check_constraints: Retorna as definições das check constraints

Seguem algumas consultas para verificar a definição de alguns objetos:

Lembrando que: Quando alguma definição estiver como NULL, é porque o objeto em questão foi criado com a opção WITH ENCRYPTION.

Espero que tenham gostado!

[]’s!

Fontes:

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.