sql server , find index by name
Ben Microsoft‘un örnek veritabanı olan AdventureWorks veritabanında bulunanProduction.Product tablosundaki ismini belirtiğim index’lerin var olup olmadığına bakıyor olacağım.
1. Yöntem : Catalog Views yardımı ile index’in tanımlı olup olmadığını sorgulamak
sys.indexes catalog view yardımı ile Clustered ve Non-Clustered index bilgisini sorgulayabiliriz. Ben bu örneğimde Production.Product tablosunda tanımlı olan “PK_Product_ProductID” isimli Clustered index’in t-sql yardımı ile sorgulanmasına bakıyor olacağım.
Software Developer - Mesut GÜNEŞ
SELECT 1 FROM sys.indexes I
WHERE I.Name='PK_Product_ProductID' --İndex Adı
AND T.Name='Product' -- Tablo Adı
AND S.Name='Production' -- Şema Adı
PRINT 'Index Mevcut'
PRINT 'Index Mevcut Değil'
2. Yöntem : sys.indexes Catalog View ile birlikte OBJECT_ID fonksiyonu kullanımı
Bu yöntemde yine Production.Product tablosunda bulunan “PK_Product_ProductID” isimli Clustered Index’in var olup olmadığını sorgulayacağız. Bu sefer sys.indexes view’i ile birlikte OBJECT_ID fonksiyonunu da kullanıyoruz.
SELECT 1 FROM sys.indexes
WHERE Name='PK_Product_ProductID' --İndex Adı
Bazı senaryolarda ihtiyacınız olacak olan bu sorgulama yöntemlerinin faydalı olması dileğiyle. Sizlerinde kullanmış olduğu farklı yöntemler var ise yorum panelinden paylaşabilirsiniz.