OUTPUT – Gelöschte oder eingefügte Sätze ausgeben

by Admin 13. April 2010 00:13

Um zu prüfen, bzw. anzuzeigen welche Sätze nach einem DELETE gelöscht wurden, kann die OUTPUT Klausel verwendet werden. Hier ein kleines Beispiel.

Wir haben eine Tabelle mit einer Identitätsspalte und einem Wert und fügen dort ein paar Werte ein:

CREATE TABLE toDelete
(
id int primary key identity(1,1),
value int
)
insert into todelete values (1)  
insert into todelete values (2)
insert into todelete values (3)
insert into todelete values (4)

Will ich nun alle Datensätze löschen, deren Wert > 2 ist und diese auch noch ausgeben (um diese beispielsweise einem Benutzer anzuzeigen), dann verwende ich die OUTPUT-Klausel:

delete toDelete
OUTPUT DELETED.value
WHERE value > 2

Ergebnis ist folgendes:

output

Das gleiche funktioniert auch mit der Tabelle INSERTED, wenn zum Beispiel neue Werte der Identitätsspalte angezeigt werden sollen.

INSERT INTO toDelete 
OUTPUT INSERTED.*
VALUES (5)

Ergebnis hier ist:

image

Damit kann man sich ein weiteres SELECT auf die Tabelle sparen.

Tags:

SQLServer

Kommentare sind geschlossen

Herzlich Willkommen

Herzlich Willkommen im SQL Server & ASP .NET Blog. Hier findet Ihr allerlei Nützliches und Hilfreiches...