草庐IT

synpipe_server

全部标签

sql-server - 将两个 xml 片段合并为一个?

如何将@a和@b的xml内容合并到@c中?declare@axml=(select1aaaforxmlpath('AAAs'));declare@bxml=(select1bb1,2bb2forxmlpath('BBBs'));declare@cxml=...@a+@b....?我需要将合并后的xml传递给存储过程。我知道可以将xml转换为varchar并连接它们并将其转换回xml。有更好的方法吗?xml内容可能很大。 最佳答案 好的,我找到了一个方法select@a,@bforxmlpath('')

SQL Server FOR XML Path 使重复节点

我想使用SQLServer2012生成以下输出:123来自同一个表中的三个不同列(我们称它们为col1、col2和col3)。我正在尝试使用此查询:SELECTt.col1as'item',t.col2as'item',t.col3as'item'FROMtbltFORXMLPATH('parent'),TYPE但我得到的是:123我在这里做错了什么? 最佳答案 添加一个值为NULL的列,为每一列生成一个单独的项目节点。SELECTt.col1as'item',NULL,t.col2as'item',NULL,t.col3as'it

sql-server - 使用 TSQL 从 XML 中删除具有特定值的节点

我正在尝试解析一段XML并删除包含特定值的节点。如果值是准确的,我知道如何删除它们,但我想使用类似“包含”的东西。这适用于完全删除:update@XMLsetdata.modify('delete//Message[text()="customerhasdeletedtheiraccount"]')但我想删除“消息”节点仅包含文本的位置,例如:update@XMLsetdata.modify('delete//Message[contains(text(),"customer")]')但是这会返回错误:XQuery[@XML.data.modify()]:'contains()'req

sql - 更新 SQL Server 中的空 XML 标记

我正在尝试更新sqlserver上我的Xml字符串中的空XML标记;它说当我运行以下脚本时该行已更新,但是当我查看XML时;什么都没有改变:Declare@newValuevarchar(100)select@newValue='01'updatedbo.UploadReportsetXmlTest.insert('replacevalueof(/CodeFiveReport/Owner/AgencyID/text())[1]withsql:variable("@newValue")')whereid='myId'之后的xml在数据库中还是这样显示我做错了什么?我试过@AgencyID

sql-server - 如何获取 sql server XML 列的 xml 安全版本

有没有办法在sqlserver中获取xml列的xml安全版本?我所说的xml-Safe是指转义特殊字符,如、'、&等。我想避免自己进行替换。sqlserver中是否有内置函数。我想实现的是将xml内容存储到另一个xml属性中。 最佳答案 这不是这个问题的直接答案,但对于任何试图在TSQL中对字符串进行xml转义的人来说,这是我写的一个小函数:CREATEFUNCTIONescapeXml(@xmlnvarchar(4000))RETURNSnvarchar(4000)ASBEGINdeclare@returnnvarchar(400

sql-server - 具有多个命名空间的 SQL Server Xml 查询

我在SQLServer中有一个表,其中包含一个Xml列,但我无法查询它。我对XPath的了解还不够,无法确定我的查询是否错误,或者是否是因为namespace冲突。这是一个示例xml:JohnDoeABC20140402000201我想从xml中检索TransactionId。我试过的查询是这样的:SELECTTOP100MessageXml,MessageXml.value('declarenamespaces="http://www.w3.org/2003/05/soap-envelope";declarenamespacea="http://www.w3.org/2005/08/

SQL Server - 仅使用 .modify() 合并两个 XML

假设我们有:CREATETABLE#Users(idINTPRIMARYKEY,nameVARCHAR(100),suggestionsXML);INSERTINTO#Users(id,name,suggestions)SELECT1,'Bob',N''UNIONALLSELECT2,'Jimmy',N'';DECLARE@userIdINT=1,@suggestionsXML=N'';Playground现在我想根据id属性合并2个XML:id=1用户的最终结果:--nothingchanged(butnotexistsin@suggestions)--nothingchanged(

sql - 使用 SQL Server XML 数据类型

我有一个包含XML字段的表。它包含的典型XML是;39Apple55Pear76Grape在我的表中,我有大约50行,我只关心两个字段,omId(int主键)和omText(我的xml数据)。我想要实现的是一种说法,跨整个表中的所有xml数据...给我所有的xmlElements,其中的标题是X。或者给我一个使用imageId为55的所有项目的计数。我正在使用XML数据类型VALUE和QUERY函数来检索数据。selectomID,omText.query('/things/Fruit'),cast(''+cast(omText.query('/things/Fruit')asvarc

sql-server - 在 SQL Server 中将行转换为 XML 格式

我有如下要求。上图的ddl和dml脚本是CREATETABLE#example([CCP_DETAILS_SID]int,[ACCOUNT_GROWTH]int,[PRODUCT_GROWTH]int,[PROJECTION_SALES]numeric(22,6),[PROJECTION_UNITS]numeric(22,6),[PERIOD_SID]int);INSERTINTO#example([CCP_DETAILS_SID],[ACCOUNT_GROWTH],[PRODUCT_GROWTH],[PROJECTION_SALES],[PROJECTION_UNITS],[PERI

sql - 使用 SQL Server 2008 表中的新值更新 Xml 属性

我在SQLServer2008中有一个表,它有一些列。这些列之一是Xml格式我想更新一些属性。例如我的Xml列的名称是XmlText并且它在前5行的值是这样的:我想更改所有30到40之间的Age属性,如下所示: 最佳答案 从您问题的早期版本看来,您的XML实际上位于表中的不同行上。如果是这种情况,您可以使用它。updateYourTablesetXMLText.modify('replacevalueof(/Identification/@Age)[1]with"40"')whereXMLText.value('(/Identifi