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.