替换SQL Server 2012中的XML数据
我请求用另一个tables列值替换XML属性。目前我对如何进一步进行感到困惑。我做了一些调查,但似乎没有一个适合我的场景。有人能帮我解决这个问题吗。提前谢谢 我有以下疑问替换SQL Server 2012中的XML数据,sql,xml,sql-server-2012,Sql,Xml,Sql Server 2012,我请求用另一个tables列值替换XML属性。目前我对如何进一步进行感到困惑。我做了一些调查,但似乎没有一个适合我的场景。有人能帮我解决这个问题吗。提前谢谢 我有以下疑问 DECLARE @XML XML SET @XML = '<LookupSyndicationExportProfileData Id="-1" Name=""> <LookupExportScopes IncludeAllLookup="False" IncludeAllLocale="False" G
DECLARE @XML XML
SET @XML = '<LookupSyndicationExportProfileData Id="-1" Name="">
<LookupExportScopes IncludeAllLookup="False" IncludeAllLocale="False" GroupBy="ColumnName" FileFormat="Excel10">
<Locales>
<Locale PK_Locale="1" ShortName="English World Wide" LongName="" FK_Culture="0" FK_Region="0" FK_Lang="0" />
</Locales>
<LookupExportScope Id="0" Name="Brand" />
<LookupExportScope Id="1" Name="BrandColor" />
<LookupExportScope Id="2" Name="BrandType" />
</LookupExportScopes>
</LookupSyndicationExportProfileData>'
SELECT
'tblk_' + N.C.value('@Name', 'nvarchar(100)') NAME,
N.C.value('@Id', 'nvarchar(100)') Id,
ro.Pk_RST_Object
FROM
@XML.nodes('//LookupExportScope') N(C)
INNER JOIN
tb_RST_Object ro ON 'tblk_' + N.C.value('@Name','nvarchar(100)') = ro.Shortname
DECLARE@XML
SET@XML=
'
挑选
“tblk_u2;”+N.C.value(“@Name”,“nvarchar(100)”名称,
N.C.值(“@Id”,“nvarchar(100)”Id,
ro.Pk_RST_对象
从…起
@节点('//LookupExportScope')N(C)
内连接
tb_RST_对象ro在'tblk_uuu'+N.C.value('@Name','nvarchar(100)')=ro.Shortname上
下面是上述查询的结果
因此,我需要用Id属性将@XML变量更新为PK_RST_对象值。请让我知道我该怎么做 对不起,我不明白这个。。。您的代码看起来像是从xml中读取的,但是这句话我需要更新@xml变量,听起来像是您想要修改现有的xml。这是一种您想用表中的数据填充的XML模板吗?是的,我想用表中的数据修改XML。
XML.modify()
允许每次调用一次更新。。。为了弄清楚这一点:您的XML看起来与上面的一样,并且附带了
元素。它们的name属性的值(连同prefxtblk\uu
)是连接到表tb\u RST\u对象的键。到目前为止是真的吗?您希望将找到的值作为pk\u RST\u对象
放在哪里?请编辑问题以添加预期的输出。抱歉,我不理解此。。。您的代码看起来像是从xml中读取的,但是这句话我需要更新@xml变量,听起来像是您想要修改现有的xml。这是一种您想用表中的数据填充的XML模板吗?是的,我想用表中的数据修改XML。XML.modify()
允许每次调用一次更新。。。为了弄清楚这一点:您的XML看起来与上面的一样,并且附带了
元素。它们的name属性的值(连同prefxtblk\uu
)是连接到表tb\u RST\u对象的键。到目前为止是真的吗?您希望将找到的值作为pk\u RST\u对象
放在哪里?请编辑问题以添加预期输出。