T-SQL Çıktı (Output) İşlemi
T-SQL Çıktı (Output) İşlemi hakkında detaylı bilgilere bu konu başlığı altından ulaşabilirsiniz.
T-SQL Çıktı (Output) İşlemi
Bir tabloda etkilenen kayıtları (eklenmesi, silinmesi, güncellenmesi) bulmak için kullanabiliriz.
|
INSERTED |
DELETED |
INSERT |
Yeni Eklenen Kayıt |
--------------------- |
DELETE |
--------------------- |
Kayıtların Silinmesi |
UPDATE |
Güncellenen Kayıt |
Kayıtların Eski Durumu |
Kullanımı:
OUTPUT alınacak_alanlar INTO aktarılacak_yer
Örnek: Adı a harfi ile başlayan öğrencilerin silinmesi sonucunla silinen kayıtları listeleyelim.
DECLARE @Silinen_Kayitlar TABLE (ad NVARCHAR(30), soyad NVARCHAR(30), tel NVARCHAR(20))
DELETE FROM OgrenciTanim
OUTPUT deleted.ad, deleted.soyad, deleted.tel INTO @Silinen_Kayitlar
WHERE ad LIKE 'a%'
SELECT * FROM @Silinen_Kayitlar
Örnek: Vize notu 50 ile 60 arasında olan derslere 5 puan 60 ile 70 arasında olan derslere 7 puan eklendikten sonra güncellenen derslerin hangi öğrenciye ait olduğunu ve güncellenen derslerin güncellenmeden önceki ve sonraki vize notlarını listeleyelim.
DECLARE @Kayit_Guncelleme TABLE (ogrid INT, dadi NVARCHAR(50), ilk_vize FLOAT, son_vize FLOAT)
UPDATE OgrDersleri
SET vize = vize + (
CASE
WHEN vize BETWEEN 50
AND 60
THEN 5
ELSE 7
END
)
OUTPUT inserted.ogrid, inserted.dadi, deleted.vize, inserted.vize INTO @Kayit_Guncelleme
WHERE vize BETWEEN 50 AND 70
SELECT OgrenciTanim.ad, dadi, ilk_vize, son_vize FROM @Kayit_Guncelleme AS Guncel
INNER JOIN OgrenciTanim ON Guncel.ogrid = OgrenciTanim.ogrid
Tepkiniz Nedir?