Geçici bir sanal tablo oluşturmaya yarar. Oluşturduğunuz tablodaki veriyi, karşılaştırma yapmak için kullanabilirsiniz. Kullanım şekli: Aşağıdaki örnekte “temptable” isminde geçici bit tablo oluşturarak buna “AveragePrice” sütununu ekledim, içine de “SalesOrderDetail” tablosundaki “UnitPrice” ‘ın ortalamasını yazdım. Sonrasında normal şekilde sorumu yazdım, “SalesOrderDetail” tablosundan “ProductID” ve “UnitPrice” getir, kullanacağın tablolar (FROM) “SalesOrderDetail” ve “temptable” sonunda da karşılaştırma […]
Cursor
Cursor mantığını satırların arasında gezen bir imleç olarak düşünebilirsiniz. Cursor yardımıyla istenilen satıra giderek değer okuyup/değiştirebiliriz. Aşağıdaki örnekte 4 satırlı tablomdan name sütunu verilerini imleç name sütunu 1. satırından başlayıp satırı okuyup alt satıra inerek devam etme işleminin kodlarını görüyorsunuz. @@FETCH_STATUS, bir veritabanı satır fonksiyonudur, hakkında detaylı bilgiyi Satır Fonksiyonları kısmında bulabilirsiniz. değişken gibi tanımlanan […]
Satır Fonksiyonları
@@FETCH_STATUS: Bağlantıda açılmış tablodaki imlecin durumunu döndürür. Return value Description 0 FETCH deyimi başarılı. -1 FETCH deyimi başarısız oldu yada son satırdan ileride (satırın bitmesi). -2 Alınan satır eksik -9 Cursor, bir alma işlemi gerçekleştiremiyor FETCH NEXT: Bir sonraki satıra geçer. FETCH PRIOR: Bir önceki satıra geçer. FETCH LAST: En son satıra geçer. FETCH FIRST: […]
Check Constraint
Tablolara eklenebilecek verilerde sınırlama yapmak amacıyla kullanılır. Bu sınırlama int veya nvarchar(##) şeklinde değil, int girilebilecek sütun için, sadece belirlenmiş sayılar arasında giriş yapılabilmesini istediğimiz durumlar için geçerlidir. Yani girilen değer sınırlamasıdır. Yeni oluşturulan tablolar için: varolan tablolar için: varolan tabloda Grade sütununda kısıtımızın sınırları dışında olan değerler varsa kısıt ekleme işlemi başarısız olur. Bunları […]
Try-Catch ve Hata mesajları
Try-Catch yapısı normal programlama dillerindeki ile aynı şekilde kullanılır. Aşağıdaki örnekte TRY içine 0’a bölme işlemi yazdım, program, bu kodu denedikten sonra hata yakalama (CATCH) geçecektir. Hata kodlarının bir kaç özelliği bulunuyor. Bunlar; ERROR_MESSAGE(): İngilizce hata mesajı. ERROR_NUMBER(): Hata numarası. (Bilgisayarımız hata verdiği zaman numara yazdığını görürsünüz. Aynı yapı) ERROR_STATE(): Hata kodu. Hata numaraları birden […]
WaitFor
İki farklı kullanılışı vardır,WAITFOR time ’10:30:00′ –satıra sunucu saatine göre 10:30:00 ‘da devam eder. WAITFOR DELAY ’00:00:02′ — 2 saniyeliğine bekletir.
Goto
belirlediğiniz yere label koyarak kodların o satırdan devam etmesini sağlamak için kullanılır. label olduğunu belirtmek için sonuna “:” konulmalıdır. label ‘a gitmek için ise GOTO kullanmanız yeterli olacaktır.
Offset & Fetch
Offset, satır atlatmak için kullanılır. Fetch, belirli adet satırları almak için kullanılır. Tabloda önce sıralama işlemi yaptırdım, ardından OFFSET kullanarak ilk 4 satırı atlattırarak sonraki satırları yazdırdım. Sıralama yaptırdıktan sonra OFFSET ile ilk 4 satırı atlattırdım ardından FETCH ile ilk iki satırı aldım. (NEXT yerine FIRST de kullanabilirsiniz. İkisi de aynı işi yapar sadece gramer […]
While, Break & Continue
(cast dönüştürme için kullanılır) BREAK ve CONTINUE kullanımı normal programlama dillerindeki gibidir. Program BREAK gördüğü yerde döngüyü sonlandırır, CONTINUE gördüğü yerde ise başa giderek döngüye devam eder. (Satırları değiştirdim)
Case
Sanal (yani geçici) bir tablo oluşturarak bu tabloya 4 satır değer ekledim. Yine sorgu yaptığım için SELECT ile başlıyorum. “Sütundaki değerin “1” olduğu yerde değeri değiştirerek 24 yap”, şeklinde çalışıyor. Her satır için tekrar tekrar çalışır ilk gördüğünü değiştirip sona ermez. Yukarıdaki örnekte tabloya 1, 2, 3 ve 4 değerlerini ekledim, CASE yapısı içerisinde 1 […]