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:
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:
Damit kann man sich ein weiteres SELECT auf die Tabelle sparen.
382320e5-def2-47fe-84a4-0c96571837f6|6|3.2
Tags: sql
SQLServer