Veritabanımda birkaç tablo var. Bu tabloların her biri, bir AuditLog tablosuna değişiklikleri kaydetmek için güncelleme veya silme işlemine tetikleyen bir tetikleyiciye sahiptir. Auditlog Tablo aşağıdakileri içerir:SQL'in xml için oluşturduğu xml'nin kök öğesine nasıl öznitelik ekleyebilirim?
Id (PK, int boş değil) Eylem (nchar (1), boş olmayan) ActionDate (tarih saat, boş olmayan) ActionUser (nvarchar (100) değil, boş) AuditData (. XML() değil, null) benim tetik olarak
, aşağıdaki gibi bir şey yapıyorum: Bu işler
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
Ancak şunu da eklemek yapmanız harika istiyorum AuditData xml'nin şöyle bir şey görebilmesi için tablename'ın Root öğesine bir özellik:
<Root tableName = "Person">
<Id>132</Id>
<FirstName>Ryan</FirstName>
...
</Root>
Bunu, xml ifadesi için ... seçimiyle gerçekleştirmenin herhangi bir yolu var mı?