MS SQL Server 2005 - SMO - 2

MS SQL Server 2005 - SMO - 2 Bir önceki yazımızda SMO (SQL Management Objects) kullanarak MS SQL Server 2005 özelliklerine erişebilen bir demo yapmış ve genel olarak SMO mimarisinden söz etmiştik. Bu yazımız ise tamamen örneğe dayalı olacak.Üç demo yapacağız. Bunlardan birincisi bir önceki örneğimize benzer yapıda MS SQL Server 2005 özelliklerine erişecek. 1-2 özelliği listeledikten sonra bir listbox içine mevcut database lerin isimlerini ve boyutlarını getireceğiz. İkinci örneğimizde SMO kullanarak bir tablo ve alanlarını yaratacak, hatta tablo alanlarının özelliklerini yaratacağız. Üçüncü örneğimizde ise bir önceki demo da yarattığımız tablo alanlarının özelliklerini düzenleyeceğiz.Aslında demoların içeriğini anlatırken bile SMO ile neler başarabileceğimizi kısaca özetlemiş olduk.- SQL Server özelliklerine erişebiliriz- Yeni database, tablo oluşturabiliriz- Trigger, Stored Procedure,vs yapıları oluşturabiliriz- RMO sayesinde Replication"ı yönetebiliriz.- vs.. 

ÖRNEK1: Bu örneğimizde  MS SQL Server 2005 özelliklerine erişeceğiz. Formumuza SQL Server"ın 1-2 özelliğini ekrana getirebilmek için 2 label ve veritabanı/boyut listesi için bir listbox yerleştirelim. Ve elbette tüm aksiyonu başlatacak olan butonumuzu.//SMO namespacelerimizi projemize dahil ediyoruz.using Microsoft.SqlServer.Management.Commonusing Microsoft.SqlServer.Management.Smo//MS SQL Server"a bağlanmak için öncelikle bir connection nesnesi//Ardından buna bağlı bir server nesnesi yaratıyoruzServerConnection Baglanti = new ServerConnection("EVREN", "sa", "123");Server Svr = new Server(Baglanti);//Bilgisini almak istediğimiz MS SQL Server"a bağlanıyoruz.//Bağlantı Özelliklerine erişmek için nesnemizi yaratıyoruz.SqlConnectionInfo BaglantiBilgi = new SqlConnectionInfo("EVREN");//Dilerseniz sağladığınız bağlantı için veritabanı ismi gibi//alanları özel olarak belirtebilirsiniz. Boş geçme şansınız varBaglantiBilgi.DatabaseName = "AdventureWorks";BaglantiBilgi.EncryptConnection = true;//Labellarımıza sırasıyla SQL Server versiyon bilgisini//Ve MasterDBPath bilgisini getiriyoruz.//Not:MasterDBPath beta versiyonlarda ConnectionInfo değil Settings tabındaydılabel1.Text = Svr.Information.VersionString;label2.Text = Svr.Information.MasterDBPath;//Hazırlayacağımız bir döngü yapısında listbox"ımıza veritabanı ismi//Ve boyutu bilgisini getireceğizforeach (Database db in Svr.Databases){listBox1.Items.Add(db.Name + " : " + db.Size + "K");}    

ÖRNEK 2: Bu örneğimizde biraz daha veritabanı nesneleriyle çalışabiliyor olmak adına mevcut bir database de yeni bir tablo yaratacak  ve bu tabloya kolonlar ekleyeceğiz.//SMO namespacelerimizi projemize dahil ediyoruz.using Microsoft.SqlServer.Management.Smo;using Microsoft.SqlServer.Management.Common;//MS SQL Server"a bağlanmak için öncelikle bir connection nesnesi//Ardından buna bağlı bir server nesnesi yaratıyoruzServerConnection Baglanti = new ServerConnection("EVREN", "sa", "123");Server Svr = new Server(Baglanti);//Veritabanı nesnemizi yaratıyor ve mevcut bir veritabınını işaret ediyoruzDatabase Veritabani = Svr.Databases["SQL2005DB"];

//Tablo isminde bir nesne yaratıyor ve daha önce yarattığımız veritabanı//nesnesini kullanarak SMODEMOTABLE isminde bir tablo yaratmasını istiyoruz.Table Tablo = new Table(Veritabani, "SMODEMOTABLE");//Kolon isminde bir nesne yaratıyor ve bunun daha önce yarattığımız Tablo nesnesiyle//ilişkili olduğunu belirtiyoruz.//Bu nesne için isim ve veritipini bu aşamada tanımlıyoruz.Column Kolon = new Column(Tablo, "Kolon1", DataType.Int);//Yarattığımız Kolon1 nesnesi için yeni özellikler ekleyebiliriz//Örneğin null olmaması gibi, yada primary key olması gibi//Burada identity özelliğini true yapıyoruzKolon.Identity = true;//Kolon1"i tablomuzla ilişkilendiriyor ve tablomuzu oluşturuyoruzTablo.Columns.Add(Kolon);Tablo.Create();label1.Text = "Bitti";} 

ÖRNEK 3: Bu örneğimizde ise bir önceki örneğimizde yarattığımız tablo alanı üzerinde bir takım değişiklikleri yapacağız. örneğin NullAble özelliğini true yapacak, Identity"i kaldıracağız.//SMO namespacelerimizi projemize dahil ediyoruz.using Microsoft.SqlServer.Management.Common;using Microsoft.SqlServer.Management.Smo;//MS SQL Server"a bağlanmak için öncelikle bir connection nesnesi//Ardından buna bağlı bir server nesnesi yaratıyoruzServerConnection Baglanti = new ServerConnection("EVREN", "sa", "123");Server Svr = new Server(Baglanti);//Veritabanı nesnemizi yaratıyor ve SQL2005DB"yi eşitliyoruz//Table nesnemizi yaratıyor ve hangi tablo üzerinde çalışacağımızı belirtiyoruz//Column nesnemizi yaratıyor ve hangi column üzerinde çalışacağımızı belirtiyoruzDatabase Veritabani = Svr.Databases["SQL2005DB"];Table Tablo = Veritabani.Tables["SMODEMOTABLE"];Column Kolon = Tablo.Columns["Kolon1"];//Kolon Nullable ve Identity özelliklerini düzenliyoruzKolon.Nullable = true;Kolon.Identity = false;//İşlemi onaylıyoruzKolon.Alter();

Döküman Arama

Başlık :

Kapat