OUTPUT pozwala na zwrócenie wierszy d0danych, zaktualizowanych lub usuniętych za pomocą komend INSERT, UPDATE i DELETE. Zwrócony wynik możemy wyświetlić po prostu na ekranie lub wstawić do innej tabeli. Wyobraźmy sobie, że mamy tabele Employee oraz EmployeeLog zawierającą logi. W celu wykonania loga możemy:
INSERT INTO Employee (ID_EMPLOYEE,FirstName,LastName) OUTPUT getdate(),'wstawiono wiersz',inserted.ID_EMPLOYEE INTO EmployeeLog values(1,'Jakies imie,','Jakies nazwisko');
Równoważny efekt można osiągnąć wykorzystując wyzwalacz. Nawet podobnie do dyspozycji mamy tabele inserted oraz deleted.
W sposób analogiczny realizujemy logi dla polecenia UPDATE:
UPDATE Employee SET FirstName='nowe imie' OUTPUT getdate(),'aktualizacja wiersza',inserted.ID_EMPLOYEE,inserted.FirstName,deleted.FirstName INTO EmployeeLog WHERE ID_EMPLOYEE=1
W powyższym przykładzie inserted.FirstName zawiera imię po aktualizacji a deleted.LastName przechowuje starą wartość (przed aktualizacją). Ostatni przypadek to polecenie DELETE:
DELETE FROM Employee (ID_EMPLOYEE,FirstName,LastName) OUTPUT getdate(),'usunieto wiersz',inserted.ID_EMPLOYEE INTO EmployeeLog where ID_EMPLOYEE=1