MSSQL’de Procedure (Stored Procedure) Kullanımı (Create Procedure, Alter Procedure, Drop Procedure)


Önceki yazımda View lerin oluşuturulması, güncellenmesi, silinmesi hakkında giriş seviyesinde bilgi verdim . View ların yapamadıklarını belirttim. Bu yazım giriş seviyesinde Procedure (stored procedure) nasıl yazılır, nasıl kullanılır, nasıl güncelleştirilir, nasıl silinir gibi konular hakkında olacak.

Procedure Nedir?

Procedure (bazen proc,sproc diye de geçebilir), kullanıcı tanımlı fonsiyonlara (UDF) benzemektedir. Aralarındaki farkı fonksiyonu anlatırken değineceğim. İlişkisel veritabanlarında erişilebilen alt program diyebiliriz. Yazılan bir procedure veritabanı içerisinden erişilebilir ve kullanılabilir. Kullandıkça işe yaradıklarını farkedebilirsiniz. Örneğin sınav bilgilerini tuttuğunuz bir veritabanınız var içerisinde sorular adında  tablonuz var ve bir anahtar kelimenin geçtiği soruyu/soruları görmek istiyorsanız. Bir procedure yazıp asp.net içerisindenden bir parametre yollayarak bunu yapabilirsiniz.  SQL içerisinde varsayılan olarak bir prosedür tamamlandığında otomatik olarak sıfır değerini döndürür. Dönen değeri çağıran koda aktarmak RETURN anahtar kelimesini kullanılır.  Fakat dönen değerinin integer bir değer olduğunuz unutmayın.

Procedure Oluşturma

Tablo, View oluşturduğunuz gibi önce Create <nesne ismi> <nesne adi> şeklinde yazıyoruz.

CREATE PROC SiteIciArama (@aranacakKelime nvarchar(50))

AS

Declare @aranan nvarchar(101)=’%’

Declare @sayac int=1

While (@sayac<=LEN(@aranacakKelime))

Begin

set  @aranan+=(Substring(@aranacakKelime, @sayac, 1) + ‘%’)

set @sayac+=1

End

Select * from Sinavlar where CikmisSorular like @aranan

Burada;

  • Declare: Bir değişken tanımlamak için kullanılır. Önce Declare daha sonra @ işareti ile birlikte değişken adı ve son olarak değişkenin türü.
  • Set: Declare ile tanımladığımız değişkenin içeriğini değiştirmek için kullanırız.
  • While: While koşul sağlandığı sürece kullanılacak bir döngü yapısıdır. IF te olduğu gibi Begin-End blogları arasında yazılır.
  • Substring: Sistem fonksiyonudur. Sql de indis mantığı olmadığı için  0’dan değil 1’den başlar.

Bu kodu yazdıktan sonra çalıştırdıktan sonra (hepsini seçip menüden execute veya f5) kullanabilirsiniz.

Procedure kullanımı

Prosedürü yazarken parantez içerisinde değişken(ler) tanımlayabiliyoruz fakat prosedürü kullanırken bu şekilde yapmıyoruz. Procedure adını yazıp başına hiçbirşey yazmasanızda olur veya Exec, Execute gibi anahtar kelimeleri yazıpta çalıştırabilirsiniz. Örnek:

SiteIciArama ‘Kurtuluş Savaşı’

Eğer birdenden fazla değişkenimiz(parametremiz) var ise ,(virgül) ile ayırarak öyle yazıyoruz.

Procedure Güncelleştirme

Alter Proc SiteIciArama dedikten sonra parametre sayısını artırabilir, azaltılabilir. Tüm procedure içeriğini baştan aşağıya değiştirebilirsiniz. Fakat çalıştırmayı unutmayın🙂

Procedure Silme

Drop Proc SiteIcıArama

Procedure Nasıl Ulaşırım

Veritabanınız içerisinde > Programmability > Stored Procedures


, , ,

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s