回答

收藏

使用xml.modify插入参数xml列的特定元素

技术问答 技术问答 62 人阅读 | 0 人回复 | 2023-09-13

我想在存储过程中插入一些值作为参数输入列xml到目前为止,我有以下参数:8 `9 D( G2 {2 h' U
@profile_id int,@user_id nvarchar(50),@activity_name nvarchar(50),@display_name nvarchar(50)检索所需的xml:2 w; M$ T8 T8 {6 H& Y- D7 _
DECLARE @profiles_xml xmlSET @profiles_xml = (SELECT profiles from tbl_applied_profiles WHERE profiles.value('(Profile/ID)[1]','int')= @profile_id)@profiles_xml内的列中的xml看上去像这样:
; N) q" X9 e) s2 ^* q; X  [I]20[/I]  [U]    [I]BC4A18CA-AFB5-4268-BDA9-C990DAFE7783[/I]    somename                   activity1            [/U]尝试具体ID插入用户:
$ Y) D& R8 j5 R/ c8 {$ eSET @profiles_xml.modify(     insert    if(/Profile/User/ID=sql:variable("@user_id"))    then Activity[Name=sql:variable("@activity_name")][DisplayName=sql:variable("@display_name")]    else()    as first    into (/Profile/User/Activities)[1]')我也尝试过这种方法,但没有成功:+ N' `' v8 D! u! b
    SET @devices_xml.modify(     insert /Profile/User[ID=sql:variable("@user_id")]/Activity[Name=sql:variable("@activity_name")][DisplayName=sql:variable("@display_name")]    into (/Profile/User/Activities)[1]')还有这个:
6 @! v. M# ~" W- {1 c    SET @devices_xml.modify('insert /Profile/User[ID=sql:variable("@user_id")]/Activities/Activity[Name=sql:variable("@activity_name")][DisplayName=sql:variable("@display_name")]    into (/Profile/User/Activities)[1]')正确的方法是什么?
7 Q% |( s" k; r& V! Q                                                               
8 v4 S2 I$ W1 C- |3 L: r, D    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则