sql-server – 如何获取sql server XML列的xml安全版本
有没有办法在sql server中获取xml列的xml安全版本?
通过xml-Safe我的意思是转义特殊字符,如<,>,’,&等. 我想避免自己做替换.在sql server中是否有内置函数. 我想要实现的是将xml内容存储到另一个xml属性中. 解决方法我假设xml-safe意味着转义 XML特殊标记.如果您希望将 XML列包含在另一个XML文档中,那么您有两个选择:>将列设置为[*]:select …,xmlcolumn as [*],… from … for xml path …这将在结果XMl中嵌入列的XML内容.例如.如果列的值为< element>值< / element>然后结果将类似于< root>< row>< element> value< / element>< / row>< / root>. 如果您的问题是关于其他问题,那么您将不得不以适当的方式对其进行重新措辞并正确使用术语.除了你之外,不要发明任何人都不懂的新术语. 更新: 如果要将XML值插入列中,则根本不需要执行任何操作.客户端库知道如何处理正确的转义.只要你正确编写代码.记住,XML不是一个字符串,永远不应该被视为一个字符串.如果在客户端中编写XML,请使用适当的XML库(XmlWriter,XML DOM,Linq to XML等).将XML传入SQL Server时,请使用适当的类型:SqlXml.存储过程应使用适当的参数类型:XML.当您阅读它时,请使用适当的方法来读取XML:GetSqlXml().同样可以将类型声明为一个miriad设计器(LINQ to SQL,EF等).最终,永远不需要手动转义XML字符.如果您发现自己这样做,那么您使用的是错误的API,您必须返回绘图板. 一个好的开始阅读是XML Support in Microsoft SQL Server 2005. 最后,要在描述时操作XML(使用表B的XML列更新表A的XML列),使用XML methods,特别是modify (… insert…),然后使用 update A set somecolumn.modify('insert {sql:column("B.othercolumn")} before somenode') from A join B on ...; 在你评论你威胁XML作为一个字符串,正如我已经说过,你永远不应该这样做:字符串和XML是水和石油. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |