SORU
19 NİSAN 2009, Pazar


SQL Server tüm dizin ve dizin sütunları listesi DB

Nasıl SQL Server 2005'te tüm dizin ve dizin sütunları listesini alabilir miyim ? Bulabildiğim en yakın:

select s.name, t.name, i.name, c.name
 from sys.tables t
inner join sys.schemas s on t.schema_id = s.schema_id
inner join sys.indexes i on i.object_id = t.object_id
inner join sys.index_columns ic on ic.object_id = t.object_id
	inner join sys.columns c on c.object_id = t.object_id and
		ic.column_id = c.column_id

where i.index_id > 0    
and i.type in (1, 2) -- clustered & nonclustered only
and i.is_primary_key = 0 -- do not include PK indexes
and i.is_unique_constraint = 0 -- do not include UQ
and i.is_disabled = 0
and i.is_hypothetical = 0
and ic.key_ordinal > 0

order by ic.key_ordinal

tam olarak istediğim şey değil. Benim istediğim liste tüm kullanıcı tanımlı dizinler (yani, dizin olan desteği benzersiz kısıtlamaları ve birincil anahtarlar) ile tüm sütunları (sipariş tarafından nasıl apper dizin tanımı) artı olarak çok meta olarak mümkün.

CEVAP
19 NİSAN 2009, Pazar


İki "" Katalog başvurabilirsiniz manzarası . sys var

select * from sys.indexes

select * from sys.index_columns

Bu belki endeksleri ve onların sütunları hakkında istediğiniz herhangi bir bilgi verecektir.

EDİT: Tamam, bu nasıl sorgu?? Ne aradığını çok yakın oluyor, değil mi??

SELECT 
     TableName = t.name,
     IndexName = ind.name,
     IndexId = ind.index_id,
     ColumnId = ic.index_column_id,
     ColumnName = col.name,
     ind.*,
     ic.*,
     col.* 
FROM 
     sys.indexes ind 
INNER JOIN 
     sys.index_columns ic ON  ind.object_id = ic.object_id and ind.index_id = ic.index_id 
INNER JOIN 
     sys.columns col ON ic.object_id = col.object_id and ic.column_id = col.column_id 
INNER JOIN 
     sys.tables t ON ind.object_id = t.object_id 
WHERE 
     ind.is_primary_key = 0 
     AND ind.is_unique = 0 
     AND ind.is_unique_constraint = 0 
     AND t.is_ms_shipped = 0 
ORDER BY 
     t.name, ind.name, ind.index_id, ic.index_column_id 

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bobinire

    bobinire

    24 EYLÜL 2006
  • Dive In

    Dive In

    17 Temmuz 2013
  • Fubar Protocol

    Fubar Protoc

    21 AĞUSTOS 2010