Veritabanındaki kolonu istediğin sayıda başlatma

Başlığı kısa tutmak zorunda kaldığım için tam olarak neyi ima ettiğimi anlamaya bilirsiniz, şimdilik. Tablolarımızda sık sık kullandığımız ID değerinin default gelen(0 dan başlayıp artan değeri vermediysek 1,2,3.. gibi gider) ilk değeri istediğimiz sayıdan başlatabiliriz. Mesela yeni bir kayıtta id numarası 1 değilde 10000’den başlayarak 10001, 10002… diyerek ten otomatik artan değerini istediğimiz sayıdan başlatabiliriz.

Bunun için eğer daha önceden tablonuzu oluşturduysanız; alter deyimini kullanarak,

1
ALTER TABLE Urunler ADD ID INT IDENTITY(10000,1) NOT NULL PRIMARY KEY

urunler tablosuna ID isimli primary key anahtarı atanmış 10000 den başlayan otomatik 1 artan kolon ekledik.

Sql’de hesaplanmış kolon oluşturmak

MsSql’de veritabanımız içindeki tablo içinde bazen iki kolon yani alandaki değeri kullanarak ortak iş yaptırabiliriz. Örnek vererek açıklayacak olursam; ürün tablomuzda ürün miktarı ve ürün birim fiyatı alanlarımız olsun, haliyle ürün miktarı*ürün birim fiyatı ilgili ürünün toplam fiyatını verecektir.

İlgili resimdeki gibi Ürün tablomuza kolonları oluşturalım (UrunAdi, UrunMiktar ve UrunBirimFiyat). Burada, ToplamFiyat kolonunu tabloyu oluşturduğumuz Design kısmında eklemediği mi söyleyeyim. ToplamFiyat’ı ilk cümlelerimde belirttiğim gibi UrunMiktar ve UrunBirimFiyat çarpılması sonucunda otomatik olarak(hesaplanmış) kendisinin eklemesini istiyoruz. Bunu yapabilmek için;

1
ALTER TABLE tblUrun ADD ToplamFiyat AS UrunMiktar*UrunBirimFiyat

tblUrun tablomuza Alter Table deyimi ile ToplamFiyat isminde hesaplanmış kolon oluşturuyoruz. Bu kolonu eklediğimizde yalnızca ürünün miktarı ve birim fiyatını girip alt satıra geçtiğimizde hesaplanmış toplam fiyat alanı otomatik gelecektir.

Tablomuzda ürünün toplam kdv dahil fiyatını da otomatik eklenmesini isteyebiliriz. Bunu yapabilmek için toplam fiyatın %18’ini almamız gerekir. Fakat toplam fiyat alanımız hesaplanmış alan olduğu için formüle toplam fiyatı değil de tekrardan miktar ve birim fiyatını işin içine katarak yapmamız gerekir.

Hadi buyurun şimdide hesaplanmış KDV dahil fiyat kolonunu oluşturalım;

1
ALTER TABLE tblUrun ADD KDVDahilFiyat AS (((UrunMiktar*UrunBirimFiyat)/100)*18)+(UrunMiktar*UrunBirimFiyat)

Görüldüğü gibi hesaplanmış kolonu gerçek bir kolon gibi kullanamıyoruz. Mesela Stored Procedure yazdığımızı düşünelim, bu procedure içinde hesaplanmış kolonu yazdığımızda procedure’ü oluşturmayıp hata verdiğini göreceksiniz.