sexta-feira, 7 de março de 2008

Consultando objetos no SQL Server

As vezes nos deparamos com situações onde precisamos listar em nossa aplicação os objetos criados no SQL server e que estão sendo usados na aplicação.

A tabela sysobjects do SQL Server armazena um registro para cada objeto criado no banco.

Em outras palavras, ele possui um registro para cada constraint, functions, stored procedures, e etc, existente no banco.

Com isso, a tabela sysobject pode ser usada para se coletar informações a respeito do banco.
Ela possui um campo chamado xtype, como filtro para os tipos de objetos queremos trazer informações.

Podemos por exemplo listar todas as tabelas do banco (user tables) com a seguinte query:

select * from sysobjects where xtype='U'

Da mesma forma, podemos listar todas as procedures apenas alterando o filtro:
select * from sysobjects where xtype='P'
Abaixo segue a lista de valores possíveis para o xtype:
  • C = CHECK constraint
  • D = Default ou DEFAULT constraint
  • F = FOREIGN KEY constraint
  • L = Log
  • P = Stored procedure
  • PK = PRIMARY KEY constraint
  • RF = Replication filter stored procedure
  • S = System table
  • TR = Trigger
  • U = User table
  • UQ = UNIQUE constraint
  • V = View
  • X = Extended stored procedure
Até a próxima

Nenhum comentário: