テーブルの列から取得しているxmlに挿入しようとしています。私はそれを次のように取得します:
DECLARE @profiles_xml xml
DECLARE @profile_id int
SET @profile_id = 16
SET @profiles_xml = (SELECT profiles from tbl_applied_profiles WHERE
profiles.value('(Profile/ID)[1]','int')= @profile_id)
結果のxmlは次のようになります。
<Profile>
<ID>16</ID>
<User>
<ID>BC4A18CA-AFB5-4268-BDA9-C990DAFE7783</ID>
<Name>test</Name>
<Activities />
</User>
</Profile>
ただし、次のように要素を挿入しようとすると、次のようになります。
SET @devices_xml.modify('insert <Activity><Name>testname</Name></Activity>
as first into (Profiles/User/Activities[1])')
次のエラーが発生します。
XQuery [modify()]: The target of 'insert' must be a single node, found 'element(Activities,xdt:untyped) *'
現在、Activities要素が1つしかないため、エラーが発生する理由がわかりません。