MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sql-server – 如何向SQL的Select for xml生成的xml的根元素添加一个属性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的数据库中有很多表.这些表中的每一个都有触发器在更新或删除时触发,以将更改记录到AuditLog表. AuditLog表包含以下内容:

Id(PK,int,not null)
Action(nchar(1),not null)
ActionDate(datetiR_878_11845@e,not null)
ActionUser(nvarchar(100),not null)
AuditData(XML(.),not 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

这很好,但是,我想做的是向tablename的根元素添加一个属性,以便AuditData xml看起来像:

<Root tablename = "Person">
    <Id>132</Id>
    <FirstName>Ryan</FirstName>
    ...
</Root>

有没有办法通过SELEct for … for xml语句来实现这一点?

解决方法

从 this线程的帮助下,我能够想出这一点,似乎有效:
SELEct 'Person' as "@tablename",(SELEct * from deleted for xml path('DataItem'),typE)
 for xml path('Root')

大佬总结

以上是大佬教程为你收集整理的sql-server – 如何向SQL的Select for xml生成的xml的根元素添加一个属性全部内容,希望文章能够帮你解决sql-server – 如何向SQL的Select for xml生成的xml的根元素添加一个属性所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:intnot