SQLCMD Aracı
Yorum Yapılmamış26/11/2009 at 12:37Kategori:.Net
MSSQL ve .NET ile projeler üretirken işimizi kolaylaştıracak araçlar ve sihirbazlar arasında tabiki komut satırından çalışan araçlara ihtiyacımız olmuyordu. Dün müşterilerden birisinin bilgisayarına teamviewer ile bağlanıp bilgisayarda SQL Management Studio olmadığını anlayınca ilk olarak uzaktan SQL Management Studio ile bağlanmayı denedim. Modemden kaynaklanan sorunlar nedeniyle bir türlü ateş duvarını aşamadık. İnternetten herhangi bir yönetim aracı indirmek yavaş internet bağlantısı nedeniyle imkansız gibi görünüyordu ve o anda aklıma Oracle SQLPLUS geldi. SQLCMD i bilmeden görmeden SQLPLUS ile tanışmam biraz da Microsoft’un bu tür araçlara bakış açısından kaynaklanıyor olabilir çünkü SQLCMD artık kullanılmayan bir araç olarak görünüyor internette. Ama oracle ile uğraşırken SQLPLUS aracının komut satırından çalışan ve çok marifetli bir araç olduğunu öğrenmiştim. SQLCMD ile bağlanıp veritabanını oluşturmam ve veritabanı tablolarını ve ilişkilerini düzenleyen SQL scriptini çalıştırmam gerekiyordu. Biraz araştırma sonrasında benim işimi görecek komutları toparladım.
Önce veritabanı dosyasını oluşturmak gerekli. Bunun için komut satırını açarak SQLCMD ile giriş yapıyoruz.
> sqlcmd –S .\SQLEXPRESS
burada .\SQLEXPRESS kısmına SQL Servisinin ismini yazmamız gerekli.
> create database TREEM
> GO
Burada veritabanının ismini vererek veritabanı oluşturduk. GO deyimi transact-SQL için ifadenin bittiğini ve buraya kadar olanı uygula anlamında kullanılan bir anahtar sözcük. Örnek olarak bundan sonra yaptığımız işlemlerin TREEM veritabanı üzerinde uygulanmasını istiyorsak
> USE TREEM
> GO
ile bunu sağlayabiliriz.
Veritabanı hazır olduktan sonra SQL Scriptini çalıştırma vakti geldi. Bunun için de yeni bir komut satırında
> sqlcmd –S .\SQLEXPRESS -i C:\SqlScript.sql
Burada script dosyasının yerini belirtmemiz gerekiyor.
SQLCMD ile 2. Round
Tam kurtuldum dediğim anda client programının biryerinde tarih formatından kaynaklanan bir hata baş gösterdi ve tüm uğraşlarıma rağmen bir daha SQL Datetime kullanmamaya yemin ettikten sonra client programındaki SQLDatetime kullanan alanları string kullanacak şekle getirdim ve veritabanında küçük bir değişiklik yapma gereksinimi böylece ortaya çıkmış oldu. İşlemler tablosundaki datetime olan islemTarihi alanı varchar(50) olarak değiştirilmeliydi ve ben yine SQLCMD ile başbaşaydım. Bu kez yine eksik Oracle çalışmalarımın meyvesini yemeye başladım ve benim de kendime hayret ettiğim bir alter table komutu ile bu sorunu da bertaraf ettim.
> SQLCMD –S .\SQLEXPRESS –U sa –P 1111
> USE treem
> GO
>alter table tbl_islemler alter column islemTarihi VARCHAR(50)
>GO
bu komutlarla önce süper user olarak kullanıcı girişi yaptım. –U parametresinden sonra kullanıcı adı ve –P parametresinden sonra da parola girilmeli. tbl_islemler tablosundaki islemTarihi kolonunun veri tipini de VARCHAR(50) olarak değiştirdim. Burada ilginç bir nokta olarak belirtmek gerekirse, eğer SQL Management Studio ile bu işlemi gerçekleştiriyor olsaydım bu veritipi değişikliğine izin vermeyecekti ve önce tbl_islemler tablosundaki tüm veriyi silmem gerekecekti. SQLCMD ile yaptığım işlem sonucunda programdan sorgu sonuçlarına göre bu komutlar sonrasında tablodaki veriler zaten otomatik olarak silinmişler.
SQLCMD ile ilgili güzel bir deneyim yaşamış oldum. Artık elimin altındaki bu aracı hep kullanmaya çalışacağım.
Cloud Computing basit olarak düşünülürse bilgisayar programlarının ve sistemlerinin kısmen ya da tamamen web ortamına taşınmasıdır. Yani önceden hard diskimizde kurulu olan veya işyerindeki ağ üzerinde çalışan programlarımız web ortamına taşınıyor. Geniş kapsamlı olarak düşünürsek yazılımları servis olarak(software as service), servisleri platform olarak (Platform as a Service), alt yapıyı servis olarak (Infrastructure as a Service) sunan bir yapı ile karşı karşıyayız. Tabi tam olarak görüp denemeden anlatmak vizontele gibi bir komediye de yol açar mı bilmem ama zaten biz servisleri uygulamalarda kullanıyorduk. Burada sadece daha yaygınlaşmış ve standartlara göre düzenlenmiş , kurumsal alanda kullanımın ön plana çıktığı bir sistem oluşturuluyor. Burada google ofis programlarını örnek verebiliriz. Google servisleri tüm insanlığa açık olan bir sistem özelliği taşıyor. Cloud Computing kullanılarak oluşturulabilecek sistemler genel kullanıma açık ya da belirli bir kullanıcı grubuna açık olabileceği gibi bir güvenlik duvarının arkasında daha kısıtlı kullanıcıları da olabilir. Ayrıca bu tekniklerin tümü kullanılarak bazı kısımları genel, bazı kısımları ise daha özel kullanımlar için ayrılabilir.