В моей базе данных есть несколько таблиц. Каждая из этих таблиц имеет триггер, который запускается при обновлении или удалении, чтобы записывать изменения в таблицу AuditLog. Таблица AuditLog содержит следующее:
Id (PK, int, not null) Действие (nchar (1), а не null) ActionDate (datetime, not null) ActionUser (nvarchar (100), а не null) AuditData (XML (.), А не null)
В моем триггере я делаю что-то вроде следующего:
DECLARE @auditBody XML
SET @auditBody = (select * from deleted as Root for xml auto, elements)
insert into dbo.AuditLog
(Action, ActionDate, ActionUser, AuditData)
select Case
When I.Id is not null then 'U'
Else 'D'
End as Action
,getdate() as ActionDate
,suser_name() as ActionUser
,@auditBody as AuditData
From
deleted D Left Join
inserted I on D.Id = I.Id
Это отлично работает, однако, что я хотел бы сделать, это добавить атрибут элемента Root tablename, чтобы XML файл AuditData выглядел примерно так:
<Root tableName = "Person">
<Id>132</Id>
<FirstName>Ryan</FirstName>
...
</Root>
Есть ли способ сделать это с помощью select from... для выражения xml?