Subscribe:
SQL etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
SQL etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

17 Ocak 2015 Cumartesi

SQL Server Agent ile Zamanlanmış Görevler Hazırlama (SQL Job)

Bu yazımda MS SQL Veritabanı üzerinden otomatik ve zamanlanmış bir şekilde kod parçacıklarını nasıl çalıştırabiliriz bu konuya değineceğim.
İlk olarak Management Studio içerisinden aşağıdaki resimde görüldüğü üzere SQL Server Agent kontrolünü aktif hale getiriyoruz.

 Start işleminden sonra aktif hale gelen Agent altında "Jobs" klasörü üzerine gelip sağ tıklayarak "New job" seçeneğini seçiyoruz.

Aşağıdaki ekranda görüldüğü üzere yeni job nesnemize öncelikle bir isim vererek, ilgili ifadeleri doldurubilirsiniz.

27 Haziran 2014 Cuma

MS Sql Server 2014 Kurulumu

Sql Server 2014 veritabanı setup dosyasını indirdikten sonra ilgili kurulum dosyasını açtığımızda aşağıdaki şekilde bir ekranla karşılaşacaksınız.
(Setup dosyasını msdn hesabımı kullanarak indirmiştim. Sizler dreamspark hesabına sahipseniz oradan indirebilirsiniz. Eğer bu tür hesaplarınız yoksa buradan indirebilirsiniz.)
Burada bizi ilgilendiren Installation sekmesidir. Ona tıklayıp sonra "New Sql Server stand-alone installation..." kısmına tıklıyoruz.


Sonrasında ürün anahtarı kısmı karşılayacak sizleri. Mevcut bir ürün anahtarınız varsa "Enter the product key" kısmına giriniz. Eğer yoksa "Specify a free edition" kısmından ücretsiz sürümünü kullanabilirsiniz.

13 Nisan 2014 Pazar

Azure Veritabanı Üzerinde Login(Kullanıcı) Oluşturma

MS Sql Server üzerinde azure veritabanına bağlandığımızda ve kullanıcı oluşturmak istediğimizde normal localdeki veritabanı gibi kullanıcı oluşturmak için bir sihirbaz gelmiyor. Onun için sql kodları ile kullanıcı oluşturmaya çalışacağız.
İlk olarak MSSS'de login oluşturmak için master veritabanını kullanacağız. Bu veritabanı üzerine sağ tıklayarak çıkan seçeneklerden "New Query" seçeneğini seçiyoruz.


 Daha sonrasında aşağıdaki kodu sorgu ekranımıza yapıştırıyoruz ve çalıştırıyoruz.

CREATE LOGIN loginismi WITH password='xxxxxxx'
GO
 
CREATE USER [loginismi] FOR LOGIN [loginismi] WITH DEFAULT_SCHEMA=[dbo]
GO



Sonrasında üzerinde çalıştığımız veritabanı üzerinde sorgu oluşturacağız. Yukarıdaki resimde görüldüğü gibi yeni bir sorgu ekranı açtığımıda ekrana aşağıdaki kodları yazıyoruz ve çalıştırıyoruz.

CREATE USER [blog] FOR LOGIN [blog] WITH DEFAULT_SCHEMA=[dbo]
GO
 
EXEC sp_addrolemember 'db_owner', 'blog';
GO

17 Mart 2014 Pazartesi

Windows 8 Üzerinde Sql Server Configuration Manager Kullanma

Windows 8 dışında kullandığım diğer işletim sistemlerinde rahatlıkla SQL Server Configuration Manager servisine ulaşabiliyordum. Ama Windows 8 işletim sistemlerinde direkt ulaşılmıyor.Configuration Manager aracı Windows 8 üzerinde bir uygulama gibi çalıştırılmıyor.
Dolayısıyla Configuration Manager'a ulaşmak için şu adımları takip ediniz.
Sağ taraftaki charm ekranından "Ara"ya tıklayınız. Çıkan ekrandaki arama alanına "SQLServerManager11.msc" yazınız(Sql Server 2012 kullanıyorsanız. 2008 kullanıyorsanız SQLServerManager10.ms yazınız).Sonra enter tuşuna bastığınızda  SQL Server Configuration Manager aracına ulaşıyor olacaksınız.



25 Aralık 2013 Çarşamba

Görev Zamanlayıcısı ile Belli Zaman Aralıklarında Sql Sorgusu Çalıştırma

Bir sorgunuz var ve hergün belli saatlerde otomatik olarak çalışmasını istiyorsunuz. Bunu gerçekleştirmek için çeşitli yöntemler bulunmakta...

Mesela Waitfor time ifadesini kullanabilirsiniz. waitfor time ile birlikte çalıştıracağınız sorguyu bir döngü içerisine alabilirsiniz. "waitfor" ifadesi ile ilgili yazıya buradan ulaşabilirsiniz.

Sql Agent servisini kullanarak yapabilirsiniz.(Not: Mssql'in express sürümlerinde agent yapısı bulunmuyor.)

Bu yazımda Windows 8 işletim sisteminde zamanlanmış görevler oluşturarak sql sorgu parçasının belirlediğim zaman aralığında otomatik olarak çalışmasını göstereceğim.

İlk önce " D:\deneme" dizininde ilgili sorgumuzu oluşturarak(metin belgesini kullanabilirsiniz) scriptimizi .sql formatında kaydedelim. (Ben "sorgumuz.sql" isminde bir dosya oluşturdum.Not: Dosyaları kaydederken Kayıt Türü olarak "Tüm Dosyalar" seçeneğini seçiniz.)

Daha sonra tekrar yeni bir metin belgesi açarak "sqlcmd -S localhost -i D:\deneme\sorgumuz.sql" ifadesini belgeye kopyalayalım. Daha sonra "çalıştır.bat" diye kaydedelim.

24 Aralık 2013 Salı

Sql'de Waitfor İfadesi

WAITFOR ifadesi, hazırladığımız kod bloğunun çalışmasını belirlenen bir zamana kadar veya belirlenen bir süre kadar bekletiyor.
Delay:parametre olarak verilen zaman kadar sonra çalıştırılır.
Time:Parametre olarak verilen zamanda çalıştırılır.
Kullanım şekli
WAIT FOR DELAY/TIME 'saat:dakika:saniye'
Örnekler:
waitfor time '22:15:00' --Kodlar saat 22:15'te çalıştırılır
waitfor time '22:15:00' --Kodlar 22 saat 15 dakika sonra çalıştırılır







5 Temmuz 2013 Cuma

STORED PROCEDURE OLUŞTURMA - SQL DİLİNDE IF YAPISI

Stored procedure güvenlik, hızlılık ve verimlilik gerektiren veritabanı uygulamalarında sıkça kullanılan bir yapıdır. Bu yapı ile ilgili daha önce yazdığım yazıya buradan ulaşabilirsiniz.
En basit ifadeyle stored procedure şu şekilde oluşturulur.

CREATE PROCEDURE [Procedure İsmi](
--Girilecek parametre isimleri buraya yazılacak
)
AS
BEGİN
--İlla BEGİN-END kullanmak zorunda mıyız? -Hayır, kullanılmasada olur.
END

Stored procedure ler bir defa derleniyor demiştik. Eğer her defasında derlenilmesi isteniyorsa "AS" den önce "WITH RECOMPİLE" kullanılması yeterli.

Şimdi aşağıdaki örnek resime odaklanalım. "spOgrenciEkle" isimli stored procedure oluşturulmuştur. Begin-end içerisine girdiğimizde "Declare" kod yapısı ile @bak isimli değişken oluşturulmuştur. Bu arada değişkenler oluşturulurken "declare" komutu başa yazılarak oluşturulur. Değişken isminin önünde de "@" sembolü kullanılır. Aynı zamanda değişkenin veri tipi de değişken isminden sonra belirtilir.(Aşağıdaki örnek: "declare @bak int"). Sonrasında öğrenciler tablosunda aynı T.C. Numarasına ait kayıt olup olunmadığına bakılıyor. Select sorgusundan dönen değeri @bak değişkenine atamıştık. Eğer @bak değişkeninden dönen değer sıfır olursa aynı veri olmadığı anlamına gelir. Eğer o şekildeyse veritabanına kayıt gerçekleştirmek için ilgili sql ifadesi kullanılmıştır.
IF yapısı normal programlama dillerindeki yapıya çok benzerdir. "{}" kapsam işaretlerinin yerine begin-end takısı almıştır. Şart kodlarımızı begin-end arasına yazıyoruz.

Şimdi yukarıdaki örnek resime odaklanalım. "spOgrenciEkle" isimli stored procedure oluşturulmuştur. Begin-end içerisine girdiğimizde "Declare" kod yapısı ile @bak isimli değişken oluşturulmuştur. Bu arada değişkenler oluşturulurken "declare" komutu başa yazılarak oluşturulur. Değişken isminin önünde de "@" sembolü kullanılır. Aynı zamanda değişkenin veri tipi de değişken isminden sonra belirtilir.(Aşağıdaki örnek: "declare @bak int"). Sonrasında öğrenciler tablosunda aynı T.C. Numarasına ait kayıt olup olunmadığına bakılıyor. Select sorgusundan dönen değeri @bak değişkenine atamıştık. Eğer @bak değişkeninden dönen değer sıfır olursa aynı veri olmadığı anlamına gelir. Eğer o şekildeyse veritabanına kayıt gerçekleştirmek için ilgili sql ifadesi kullanılmıştır.
IF yapısı normal programlama dillerindeki yapıya çok benzerdir. "{}" kapsam işaretlerinin yerini begin-end takısı almıştır. Şart kodlarımızı begin-end arasına yazıyoruz.
Stored procedure çağırmak için "exec" ifadesini kullanıyoruz.
exec <stored procedure ismi> varsa parametreler.
Aşağıdaki sorgu sonucunda dönen değer "0" olduğuna göre bu demek oluyorki veritabanında bu tc numarasına ait kayıt yokmuş ve bu sebepten dolayı veritabanı kayıt eklenmiş bulunmaktadır.
Bu yazıda sizlere kısaca stored procedure oluşturmadan bahsettim. Aynı zamanda sql de IF şartlı ifadesini ve değişken oluşturmayada değinmiş olduk. Stored procedure kavramıyla ilgili sorularınız varsa yorum olarak yazabilirsiniz. Bir başka yazıda görüşmek üzere. İyi çalışmalar.

STORED PROCEDURE

sadık dereköy, stored procedure anlatımı
Stored Procedure yapısının faydaları oldukça fazladır
Bu yazımda özellikle orta ve büyük çaplı projelerde olmazsa olmazlardan olan stored procedure yapısına değineceğim. En basit açıklamayla bu yapıyı bizim uygulamalarda kullandığımız fonksiyon yapısı gibi görebilirsiniz. Zaten kelime anlamı da saklı yordam, methot anlamalarına geliyor.
Konuya giriş yapmadan önce kendimden örnekler vererek bu yapıya giriş yapmak ist
edim. Ben bir proje yaparken ilk başlarda temel sql ifadelerini kullanarak veritabanı işlemlerini gerçekleştiriyordum. Nasıl oluyordu bu? Mesela en basit ifadeyle veritabanına kullanıcı eklediğinizi düşünün. "İnsert" ifadesini kullanarak işlemi gerçekleştiriyoruz. Sonra eklediğimiz kaydın veritabanında olup olmadığını kontrol etmemiz gerektiğinin farkına varıyorsunuz. Onun için "select" ifadelerini kullanarak tekrar veritabanına bağlanıp o kaydın veritabanında olup olmadığının kontrol edilmesine ihtiyaç duyuluyor. Bunun gibi daha bir çok veritabanına sürekli bağlanıp işlem yapılması gereken durumlar ortaya çıkıyor. Durum böyle olunca stored procedure kavramını kullanmak en mantıklı ve sağlıklı çözüm oluyor. O kadar fazla faydası var ki şimdi onlardan bir kısmına kısaca değineceğim.
Stored Procedure'ler veritabanı sunucularında tutulduğu için çok hızlı çalışırlar. Bunun sebeplerinden biri, bir defa derlendikten sonra bir daha derlenmeye ihtiyaç duymamalarıdır. Bir de uygulama katmanında yazmış olduğumuz koda bakalım. Burada sql kodu her çağırmada tekrar tekrar derlenmek zorunda. Büyük çaplı projelerde oluşacak zaman ve performans kaybını siz düşünün.
Programlama dili ile veritabanı dili dediğimiz kavramları birbirinden ayrı tutmaya olanak sağlıyor.
Güvenlik açısından da kullanılması mutlaka önerilen bir yapıdır. Tablo isimlerimizi ve alanların görülmemesi için bu yapıyı kullanmak şart.
Bir kere yazıp bir yerde kullanmak gibi daha bir çok faydası olan bu yapıyı kısaca anlatmak istedim. Farkı büyük çaplı projelerde daha belirgin olan bu yapıyı karmaşık veritabanı işlemleri gerektiren projelerle uğraşırken mutlaka öğrenmeniz gerekecektir.