29 Ekim 2010 Cuma

OUTPUT INTO

OUTPUT INTO ile, UPDATE,INSERT,DELETE ve MERGE işlemleri sırasında etkilenen verileri bir tabloya kopyalayabiliriz.  Log almak, son değişiklik yapılan verilen ile ilgili işlem yapmak için iyi bir yöntemdir.

UPDATE Production.Product
SET Color = 'blue'
OUTPUT inserted.ProductID,
inserted.Name,
inserted.Color,
deleted.Color

INTO ProductLog
WHERE ProductID= 134


inserted ve deleted sanal tabloları, trigger lardan bildiğimiz tabloların aynısıdır. Yeni değerler inserted tablosunda, eski değerler deleted tablosunda bulunur.

INTO da verilen tablonun yapısı, OUTPUT da getirilen kolonlarla aynı yapıda olmalıdır.

OUTPUT INTO da kullanılamayacak ifadeler
  • Başka bir veri tabanından olan bir tablo
  • View
  • CTE (Common Table Expression) 
  • Üzerine trigger yazılmış bir tablo 
  • Foreign key constraint i tanımlı bir tablo
  • Merge veya Transaction replicationda yer alan bir tablo.
 Asıl amaç, output into sırasında oluşacak bir hatayı engellemektir.

Hiç yorum yok: