Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sobre el Catálogo del Sistema

0 views
Skip to first unread message

Gabriel Giraldo

unread,
Apr 15, 2000, 3:00:00 AM4/15/00
to
Hola a todos. Con el fin de conocer el catálogo de la base de datos en SQL
Server, me he puesto a revisar las tablas del sistema para recopilar la
información referente a cada una de mis tablas.

Consulté sysobjects para cada uno de los objetos, syscolumns para la
información sobre cada una de las columnas, systypes para los tipos de
datos, sysreferences para las llaves foráneas.

Sin embargo, el manual de SQL Server 6.5 me dice que para saber cuales de
las columnas en mis tablas son claves primarias, debo ir a consultar la
tabla sysconstraints, la cual contiene el id de la tabla, la id de la
columna (colid) y el tipo de constraint en el campo status, el cual debiera
ser 1 para PRIMARY KEY.

Cuando consulto sysconstraints el campo status contiene números que para
nada se asemejan a los que según el manual debieran contener.

Como puedo entonces sacar los campos que pertenecen a la llave primaria de
una tabla mediante la consulta del Catálogo de la Base de Datos?

Muchas gracias a quien pueda colaborarme al respecto.

PD. Como mencioné anteriormente, deseo conocer a fondo el Catálogo. Por lo
tanto no me interesa solucionar esta duda mediante procedimientos
almacenados como el sp_help.


Fernando G. Guerrero

unread,
Apr 15, 2000, 3:00:00 AM4/15/00
to
El campo status es un mapa de bits en el que se almacenan diferentes
atributos. Para buscar qué constraints son Claves Primarias, se debe
ejecutar la siguiente consulta:

select * from sysconstraints
where status & 7 = 1

si además quieres saber qué nombres tienen, deberás ejecutar:

select so.name, sc.*
from sysobjects so
join sysconstraints sc
on so.id = sc.constid
where sc.status & 7 = 1


--
Fernando G. Guerrero
MCDBA, MCSD, MCT, MCSE+Internet
QA Group Ltd., UK
Share what you know, learn what you don't

(please reply only to the newsgroup)

"Gabriel Giraldo" <gagi...@edt.net.co> wrote in message
news:#HlVTywp$GA.191@cppssbbsa05...

Gabriel Giraldo

unread,
May 11, 2000, 3:00:00 AM5/11/00
to
Gracias Fernando. Si además deseo saber cuales campos de una tabla hacen
parte de la clave primaria, donde debo buscar en las tablas del sistema esta
información?


Fernando G. Guerrero <Fer...@guerrerog.org> escribió en el mensaje de
noticias #KlQh5xp$GA....@cppssbbsa02.microsoft.com...

Gabriel Giraldo

unread,
May 23, 2000, 3:00:00 AM5/23/00
to
0 new messages