Diferenciar indices en SQL

21/11/2004 - 02:00 por Joan Carles Jiménez | Informe spam
Hola a todos.

Tengo la siguiente consulta ...

SELECT sysobjects.name AS tblname, sysindexes.name AS idxname,
syscolumns.name AS fldname
FROM sysobjects, sysindexes, syscolumns, sysindexkeys WHERE sysobjects.id sysindexes.id
AND sysindexes.id = sysindexkeys.id AND sysindexes.indid sysindexkeys.indid AND
sysindexkeys.id = syscolumns.id AND sysindexkeys.colid = syscolumns.colid
ORDER BY sysobjects.name, sysindexes.name, sysindexkeys.colid

Con ella puedo saber que indices tiene cada tabla y que campos forman el
indice. Ahora bien, ¿Como puedo saber si se trata de un indice primario o
"unique"?

Gracias por todo.

Joan Carles.
jjcarles@terra.es
 

Leer las respuestas

#1 Gustavo Larriera [MVP]
21/11/2004 - 15:32 | Informe spam
Usa la función INDEXPROPERTY, los detalles los tienes en los Books Online
(BOL) de tu instalación. Si quieres un buen ejemplo de uso, mira el código
fuente del sproc master.dbo.sp_helpindex.

Gustavo Larriera, MVP
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Joan Carles Jiménez" wrote in message
news:
Hola a todos.

Tengo la siguiente consulta ...

SELECT sysobjects.name AS tblname, sysindexes.name AS idxname,
syscolumns.name AS fldname
FROM sysobjects, sysindexes, syscolumns, sysindexkeys WHERE sysobjects.id
> sysindexes.id
AND sysindexes.id = sysindexkeys.id AND sysindexes.indid > sysindexkeys.indid AND
sysindexkeys.id = syscolumns.id AND sysindexkeys.colid = syscolumns.colid
ORDER BY sysobjects.name, sysindexes.name, sysindexkeys.colid

Con ella puedo saber que indices tiene cada tabla y que campos forman
el
indice. Ahora bien, ¿Como puedo saber si se trata de un indice primario o
"unique"?

Gracias por todo.

Joan Carles.



Preguntas similares