Sql Server Database Nesnelerinin Özelliklerini Genişletme (EXTENDED PROPERTIES)

Sql Server Database Nesnelerinin Özelliklerini Genişletme (EXTENDED PROPERTIES)

Bu makalede, Sql Server database nesnelerine ait özelliklerinin genişletilmesinden bahsedeceğiz. Bildiğiniz gibi her veri tabanı nesnesinin kendine has özellikleri,diğer bir ifade ile meta data "ları vardır.SQL Server "daki her nesne özellikler setine sahiptir.Örneğin bir tabloya ait bir alan yada diğer bir ifadeyle bir kolon data type, precision,scale vs... gibi bir çok özellikler setine sahiptir.

İşte bu özellikleri ihtiyaç dahilinde genişletebilir ,yeni özellikler ekleyebiliriz.Bu sayede database nesnelerimizi daha zengin bir hale getirebiliriz.Bu şekilde database nesnelerine daha sonradan ilaveten eklenmiş özellikler,”Extended Property” olarak adlandırılmaktadır.Sql Server üzerinde bu şekilde "Extended Property" "ler oluşturmak,güncellemek,silmek ve listeletmek için aşağıda belirtilen sistem prosedürleri ve sistem fonksiyonları kullanılır.

sp_addextendedproperty , bir database nesnesine yeni bir "Extended Property" ekler. sp_dropextendedproperty, bir "Extended Property" " i database nesnesi üzerinden siler. sp_updateextendedproperty, var olan bir "Extended Property" " nin değerini günceller. fn_listextendedproperty , bir database nesnesine ait yalnızca bir yada bütün "Extended Property" değerlerini listeler.

Ben bu prosedürleri,anlatırken bir tablo alanını kullanıyor olacağım.Eğer isterseniz siz bu prosedürleri tablolar,görünümler(views),parametreler,fonksiyonlar,saklı yordamlar(stored procedures) yada diğer database nesneleri üzerinde kullanabilirsiniz.Tüm nesnelerin listesini görmek için http://msdn2.microsoft.com/en-us/library/aa214766(SQL.80).aspx linkini kullanabilirsiniz.Şimdi sırayla bu fonksiyon ve prosedürlerin nasıl ve ne amaçla kullanılabileceklerini inceleyelim.

Yeni "Extended Property" Oluşturma

Başlangıç olarak “Musteriler” adında bir tablomuzun olduğunu ve bu tabloya ait “MusteriAdi” adında bir alanımızın olduğunu düşünelim ve bu tablodaki kayıtları uygulamanızdaki bir grid üzerinde gösterdiğimizi düşünelim.Grid üzerindeki başlık bölümlerinde “MusteriAdi”,”MusteriSoyadi” gibi göze hoş gelmeyen şeyler göreceksiniz.

İşte bu problemi çözmek için “Musteriler” tablomuzdaki alanlara “Caption” adıyla yeni bir özellik ekleyelim ve uygulamadada Label,Grid gibi kontrollerde gösterim yaparken bu özellikten çekeceğimiz değerleri gösterebiliriz.Eee buna ne gerek var ki,bunu kod tarafında da kolaylıkla yapabilirim dediğinizi duyar gibiyim fakat büyük bir uygulamada binlerce alan olduğunu düşünürseniz yada bu alan isimlerini ingilizce,almanca vs.. dillerde göstermek istediğinizi düşünürseniz, yaptığımız işlemin ne derece önemli ve faydalı olduğunu anlayacaksınız.Bu sadece bir örnek bu örnekleri çoğaltabiliriz örneğin çalışma anında formlarınızı otomatik olarak ve belirli bir standartta dizayn etmek istiyorsunuz,işte bu gibi durumlarda database nesnelerinize ait meta datalar yardımınıza koşacaktır.Tablonuzdaki alanlara ait isimlerdirme, formun üzerinde alanınızı temsil edecek kontrolün bulanacağı koordinatlar, arka plan rengi, font, yazı rengi vs… gibi değerleri o alanlara vereceğiniz “Extended Property” değerlerini okuyarak rahatlıkla çalışma anında formlar oluşturabilirsiniz.Bu örnekleri çoğaltmak mümkün, biz bir tablodaki alana nasıl “Extended Property” ekleriz gelin ona bakalım.

exec sp_addextendedproperty "Caption", "Müşteri Adı", "user", "dbo", "table", "Musteriler", "column", "MusteriAdi"Command(s) completed successfully.

Yukarıdaki örnekte “Musteriler” tablosundaki “MusteriAdi” alanına “Caption” adıyla yeni bir özellik ekledik ve değerinide “Müşteri Adı” olarak verdik.

“Extended Property” Değerini Değiştirme

Şimdide yukarıda oluşturduğumuz özelliğin değerini değiştirelim.

exec sp_updateextendedproperty "Caption", "Customer Name", "user", "dbo", "table", "Musteriler", "column","MusteriAdi"Command(s) completed successfully.

Evet sizinde gördüğünüz gibi “MusteriAdi” alanına ait “Caption” özelliğinin değerini “Customer Name’” olarak değiştirdik.Daha önceden oluşturulmamış bir özelliği değiştirmeyi denerseniz Sql Server “Property cannot be updated or deleted.” şeklinde bir hata mesajı verecektir.

“Extended Property” ‘leri Listeleme

Oluşturduğumuz “Extended Property” ‘ e ait bilgileri çekmek için ise fn_listextendedproperty isimli sistem fonksiyonunu kullanırız.İki tip kullanımı vardır.Eğer ilk parametreyi null geçerseniz database nesnesi üzerinde tanımlı tüm “Extended Property” değerlerini çekeriz yada özelliğin ismini biliyorsanız ilk parametreye bu özelliğin adını geçirirsiniz ve sadece bu özelliğe ait bilgiyi çekersiniz.Şöyleki :

SELECT name,value FROM :: fn_listextendedproperty(NULL,"user","dbo","table","Musteriler","column","MusteriAdi")

Görüldüğü gibi tüm genişletilmiş özellikler(Extended Property) listelendi.Şimdi de istediğimiz bir özelliği listeleyelim.

SELECT name,value FROM :: fn_listextendedproperty("Caption","user","dbo","table","Musteriler","column","MusteriAdi")

Evet şimdi ise yalnızca “Caption” özelliğini çektik.

“Extended Property” Silme İşlemi

Son olarak oluşturduğumuz özelliği database nesnesi üzerinden nasıl sileceğimizi inceleyelim.Bu işlemi sp_dropextendedproperty isimli sistem prosedürü ile yapıyoruz.Bunuda şöyle gerçekleştiriyoruz:

exec sp_dropextendedproperty "Caption", "user", "dbo", "table", "Musteriler", "column", "MusteriAdi"Command(s) completed successfully.

Tüm bu işlemleri T-Sql kullanarak değilde ara yüz aracılığıyla yapmak isterseniz , bu SQL Server 2005 te mümkün.

Gördüğünüz gibi bu şekilde de Extended Properties eklemek mümkün.

Sonuç

Günümüz uygulamalarında meta data kullanımının önemi giderek artıyor.Database nesnelerinize yeni özellikler ekleyerek onları zenginleştirebilir ve bu özellikleri çeşitli amaçlarla kullanabilirsiniz.Bu özellikleri yönetebileceğiniz araçlar tasarlayabilirsiniz.Bu sayede daha esnek , daha dinamik projeler üretebilirsiniz. ”Extended Property” SQL SERVER 2000 ile gelen bir yeniliktir ve SQL SERVER 2005 tarafındanda desteklenmektedir.Bu nedenle gönül rahatlığıyla genişletilmiş özellikleri kullanabilirsiniz.Umarım makale faydalı olmuştur.Bir sonraki makalemde görüşmek üzere.

Döküman Arama

Başlık :

Kapat