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