Entendento o SQL Server sysobjects e syscolumns
Postado por Carlos Fernando Sylverio | Postado em Programação, Tecnologia | Postado em 07-12-2009
2
SQL Server sysobjects é uma tabela do SGBD SQL Server que armazena informações sobre os objetos criado no banco de dados. Contendo uma linha (registro) para cada objeto existente, como uma restrição, padrão, log, regra e procedimento armazenado.
No exemplo abaixo podemos encontrar informação sobre todos os objetos utilizados no banco de dados:
SELECT * FROM sysobjects
A coluna type e xtype possuem informação sobre o tipo de objeto. Tome cuidado para não confundir os valores das constantes. Há pequenas particularidades entre elas.
Para exibir todas as tabelas criadas pelo usuário executamos a seguinte instrução:
SELECT * FROM sysobjects WHERE xtype='U'
Ou saber as trigger existentes em cada tabela:
SELECT Sys2.name AS TableName, Sys1.name AS TriggerName, CASE WHEN Sys1.deltrig > 0 THEN 'Delete' WHEN Sys1.instrig > 0 THEN 'Insert' WHEN Sys1.updtrig > 0 THEN 'Update' END FROM sysobjects Sys1 INNER JOIN sysobjects Sys2 ON Sys1.parent_obj = Sys2.id WHERE Sys1.xtype = 'TR' ORDER BY Sys2.name
Lista de possibilidades de valores para a coluna xtype:
- C = CHECK constraint
- D = Default or DEFAULT constraint
- F = FOREIGN KEY constraint
- L = Log
- P = Stored procedure
- PK = PRIMARY KEY constraint (type is K)
- RF = Replication filter stored procedure
- S = System table
- TR = Trigger
- U = User table
- UQ = UNIQUE constraint (type is K)
- V = View
- X = Extended stored procedure
A tabela syscolumns retorna uma linha para cada coluna de um objeto que tem colunas, como exibições ou tabelas. E pode ser um auxilio na obtenção de informação sobre as colunas das tabelas:
SELECT * FROM sysobjects SysObj INNER JOIN syscolumns SysCol ON SysObj.id = SysCol.id WHERE SysObj.type='U' AND SysObj.name = 'tbl_cliente'
Referência:
Observação: Os exemplos deste post foram criados para a versão 2005 do SQL Server, para versão 2000 do SQL Server consulte o artigo Mapeando tabelas do sistema do SQL Server 2000 para exibições do sistema do SQL Server 2005


seguidores
leitores