Merhaba bu yazımda Sql server üzerinden bazı temel işlemlerin nasıl yapıldığına dair açıklamalar ve örneklerden bahsedeceğim.
Öncelikle Stored Procedure dediğimiz kavramı açıklamak istiyorum. Bunlar bir görevi tamamlamak için yazmış olduğumu kod parçalarıdır. Örneğin bir tablo oluşturma işleminin sorgusunu biz hazır bir format haline getirip dışarıdan parametre alabilir bir forma dönüştürürsek bunu sp olarak kaydetme imkanımız vardır. Spler parametre aldıkları gibi kendi içlerinde de başka bir sp çağırabilirler. Performans açısından büyük verilerde çok hızlıdırlar.
USE "Database Name" GO CREATE PROCEDURE "Stored Procedure Name" // Varsa parametrelerin declare edileceği bölüm AS BEGIN SET NOCOUNT ON; // Yazacağımız Sorgu END
Yukarıda gördüğümüz gibi temelde normal sql sorguları gibi aynıdır yapıdadır ancak parametre alma durumlarında declare dediğimiz tanımlama işlemleri yapmamız gerekmektedir.
Stored Procedure Create
Örnek olarak bir tablo oluşturalım ardından o tabloya veri ekleyelim ve ardından bu verileri çekme işlemini yapacak spleri oluşturalım.
USE [berkaratcom] GO CREATE PROCEDURE [dbo].[sp_CreateTable] AS BEGIN SET NOCOUNT ON; CREATE TABLE tbl_test( [ad] [nvarchar](50) NULL, [soyad] [nvarchar](50) NULL, [yas] [int] NULL, [password] [nvarchar](50) NULL, [email] [nvarchar](50) NULL, ) ON [PRIMARY] END
Bu sql sorgumuz bize tbl_test adında 5 tane parametresi olan bir tablo oluşturmaktadır. Stored procedur adımız ise sp_CreateTable olarak belirledik bu sorguyu execute ettiğimiz zaman Programmability>Stored Procedure yolunun altında procedure görünecektir.
Stored Procedure Select
Bu sql işleminde select yani çağırma işlemini gerçekleştireceğiz.
Burada dikkat edilmesi gereken nokta iki farklı tablo ile işlem yapmaktayız. Bu tabloların birine “a” diğerine “b” olarak tanımlıyoruz. Ardından a. veya b. şeklinde o tablonun istenilen sütununu çağırabiliyoruz. Böylece bir sorguda iki tabloya hükmedebiliyoruz. Bu sayede birbirleriyle ilişkili tablolar da oluşturabilmekteyiz.
USE [berkaratcom]
GO
CREATE PROCEDURE [dbo].[sp_select]
AS
BEGIN
SET NOCOUNT ON;
SELECT
a.film_ad,
b.koltuk_sayisi,
a.dolu_koltuk sayisi
FROM
dbo.tbl_koltukdurumu a,
dbo.tbl_koltukdurumu b
WHERE
a.film_id=b.film_id
END
USE [berkaratcom] GO DECLARE @return_value int EXEC @return_value = [dbo].[sp_select] SELECT 'Return Value' = @return_value GO
Stored Procedure Insert
Daha sonra tablolar kısmında tbl_test tablomuza insert işlemi gerçekleştirecek bir procedure oluşturalım.
USE [berkaratcom]
GO
CREATE PROCEDURE [dbo].[sp_insert]
@ad nvarchar(50),
@soyad nvarchar(50),
@yas int,
@password nvarchar(50),
@email nvarchar(50)
AS
BEGIN
SET NOCOUNT ON;
INSERT INTO [dbo].tbl_test
([ad]
,[soyad]
,[yas]
,[password]
,[email])
VALUES
(
@ad,@soyad,@yas,@password,@email )
END
Buradaki sql örneğimizde sp_insert adından bir sp oluşturuyoruz ve ardından declare dediğimiz parametreleri tanımlama yapıyoruz. Burada dikkat edilmesi gereken nokta parametrelerin değerleri ile tablodaki değerler aynı olmalıdır aksi takdirde hata mesajı ile karşılaşırız.
USE [berkaratcom]
GO
DECLARE @return_value int
EXEC @return_value = [dbo].[sp_insert_test]
@ad = 'Berk',
@soyad = 'Arat',
@yas = 25,
@password = '123456',
@email = N'[email protected]'
SELECT 'Return Value' = @return_value
GO
Ardından sql querry modundan da yapacağımız bu sorgu ile işlemimizin doğru olup olmadığını test edebiliriz. Eğer sorgusuz yapılmasını istiyorsanız modify seçeneği ile de yapılabilir.
Ek bilgi
nvarchar ile varchar arasındaki fark şudur :
varchar : latif alfabesi için kullanılır ve her karakter için 1 byte veri boyutuna sahiptir.
nvarchar : Arap, Çin alfabeleri gibi Latin olmayan alfabeleri de kapsamaktadır ve her karakter için 2 byte veri boyutuna sahiptir.























