Для использования OUTPUT clause для аудита изменений в базе данных необходимо выполнить следующие шаги:
Например, для аудита вставленных записей нужно захватить вновь вставленные записи и вставить их в переменную таблицы: 5
DECLARE @Output_Insert TABLE(Id INT, Emp_Id INT,Dept_Id INT)INSERT INTO [dbo].[Emp_Details] ( [Emp_Id] ,[Emp_Name], [Dept_Id],[Dept_Name] )--Захват вновь вставленных записей в переменную таблицыOUTPUTINSERTED.[ID], INSERTED.[Emp_Id], INSERTED.[Dept_Id] INTO @Output_Insert (Id,Emp_Id,Dept_Id)
Для аудита удалённых записей нужно удалить вновь вставленные записи и захватить записи с помощью OUTPUT: 5
DECLARE @Output_Delete TABLE(Id INT, Emp_Id INT,Dept_Id INT)DELETE--Захват удалённых записей в переменную таблицыOUTPUT DELETED.[ID], DELETED.[Emp_Id], DELETED.[Dept_Id] INTO @Output_Delete (Id,Emp_Id,Dept_Id)
При добавлении OUTPUT clause к хранимым процедурам можно провести аудит всех изменений в базе данных. 3