SQL (Structured Query Language), veritabanı yönetim sistemlerinde verileri yönetmek, sorgulamak ve işlemek için yaygın olarak kullanılan bir dildir. SQL fonksiyonl...
SQL Server OUTPUT Kullanımı Silinen Kaydın Bilgilerini Geriye Döndürme
Bu yazımda SQL Server'da OUTPUT ile DELETED komutunun yapısını inceleyeceğiz. Kayıtlar üzerinde yapılan silme işlemlerinde, kaydın bilgilerini bize geri döndürmesini sağlar. DELETED ifadesi sadece DELETE komutu ile beraber kullanılır. Bazı durumlarda oldukça kullanışlı olabilir. SQL üzerinde yaptığınız bir silme işleminden sonra silinen kayda ait istediğiniz alanları ya da tamamını geriye sonuç olarak döndürebilirsiniz. OUTPUT aynı zamanda ekleme, silme (DELETE) işlemi için de kullanılır. SQL Server OUTPUT Kullanımı Eklenen ve Düzenlenen Kaydın Bilgilerini Geriye Döndürme yazımı okuyarak OUTPUT'un diğer kullanım şekillerini inceleyebilirsiniz.
Bu yazdığım sorguları Nortwind veri tabanı üzerinden yaptım. Veri tabanını indirmek için buraya tıklayabilirsiniz. Veri tabanını SQL Server üzerinden açıp script kodunu çalıştırabilirsiniz. SQL Server'da script dosyasını nasıl çalıştırılır bilmiyorsanız SQL Server Script Alma ve Çalıştırma adlı yazılımı inceleyebilirsiniz.
OUTPUT Kullanımı
DELETED DELETE sonucunda oluşan mevcut değerleri kapsar. Silme işleminden sonra silinen değere ait ID değerini ya da silinen kayda ait istediğiniz bir alanı geriye döndürebilirsiniz. Bunlar yeterli değil ise silinen kaydın tamamını da geriye döndürebilirsiniz.
Silinen Sipariş Detayının Sipariş Numaralarını Geriye Döndürme
Örneğin OrderDetails tablosunda sipariş bilgileri bulunmaktadır. Bu siparişlerin iki tanesini sildiğimizde geriye sildiğimiz sipariş numarasını döndürecektir.
DELETE od
OUTPUT DELETED.OrderID
FROM OrderDetails od
JOIN Products p
ON p.ProductID = od.ProductID
WHERE OrderID IN( 10257,10258)
Silinen Sipariş Detayının Tüm Bilgilerini Geriye Döndürme
Örneğin OrderDetails tablosunda sipariş bilgileri bulunmaktadır. Bu siparişlerin iki tanesini sildiğimizde geriye sildiğimiz sipariş numarasına ait tüm bilgileri döndürecektir.
DELETE od
OUTPUT DELETED.*
FROM OrderDetails od
JOIN Products p
ON p.ProductID = od.ProductID
WHERE OrderID IN( 10257,10258)
Umarım faydalı olmuştur. İyi çalışmalar.
Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.