草庐IT

synpipe_server

全部标签

xml - 如何在 SQL Server 2008 R2 中读取 XML 的一部分作为 XML

我使用的是SQLServer2008R2,我的存储过程采用结构化XML,它具有多个级别,如下所示:DECLARE@XMLxml='AdminHRDevelopmentAdmin'从上面的示例中,我想为具有多个部门的用户(isSingle="0")获取2列,其中第一列是用户ID,第二列是整个XML。我可以通过以下查询获取用户ID,但如何获取XML格式的部门部分:SELECTT.C.value('(../@id)','int')ASUserID,T.C.value('(../Departments)[1]','nvarchar(max)')ASDepartmentsXMLFROM@XML.

sql-server - SQL 处理 XML 性能 : Insert into columns in a table

我在SQL过程中遇到问题,我似乎找不到合适的解决方案。存储过程包含一个XML数据类型的参数(name=@data)。传入消息的示例如下(实际消息包含更多节点,但为简单起见,我将它们省略):30099990在我的SQL数据库中,我有一个名为“Supplier”的表,它包含与XML中的节点完全相同的列(IDCONO、IDSUNO、IDSUTY,..)我需要遍历节点并将数据插入列中。我已经实现了下面的程序,但这给了我很多关于更大文件的性能问题(处理时间长,甚至超时):INSERTINTOSUPPLIER(IDCONO,IDSUNO,IDSUTY)SELECTT.C.value('IDCONO

sql-server - 在插入 XML 字段之前过滤重复节点

我正在使用xml字段以这种格式存储对书籍的建议:有时我需要将建议添加到此xml中。这是通过以下语句完成的:DECLARE@booksXML;SELECT@books=Suggestions.query('//books/book')FROMUserWHEREUserId=@UserIdUPDATEUserSETSuggestions.modify('insertsql:variable("@books")asfirstinto(//books)[1]')WHEREUserId=@UserId如何确保我没有插入已经存在的节点(仅基于id属性)。 最佳答案

sql-server - 是否可以使用变量设置使用 FOR XML PATH 的选择语句中的 ROOT 元素?

我有一个创建xml文件的查询。目前,我对ROOT元素进行了硬编码。我想使用变量值来设置此根元素值,但用变量替换硬编码字符串会引发语法错误,即expectingastring。这是选择语句:DECLARE@SelectResultsXMLDECLARE@DatabaseNamevarchar(100)SELECT@DatabaseName=DB_NAME();SET@SelectResults=(SELECT...queryresultshere...FORXMLPATH(''),ROOT(@DatabaseName)--whenthisissetto'DatabaseName'itwo

javascript - jQuery.ajax 给出 "TypeError: Cannot read property ' documentElement' of null"on server but not local

我在http://alpha.spherecat1.com/上的jQuery代码有问题,但本地副本工作正常。如您所见,如果您现在访问该站点,ajax调用会出现以下错误:“类型错误:无法读取null的属性‘documentElement’”我检查并重新检查并重新上传了我能想到的所有内容。文档说要确保我发送的是正确的MIME类型,但我没有这样做。这是有问题的代码:functionchangePageAJAX(newPage,method){if(method!="replace"){window.location.hash=newPage;}newPage=newPage.substrin

sql-server - 如何解析sql server中的xml以处理DateTime DataType中的NULL值

我已经在sqlserver中创建了一个示例查询来解析来自xml的数据并立即显示它。虽然我会将这些数据插入到我的表中,但在此之前我面临一个简单的问题。我想在日期时间字段ADDED_DATE="NULL"中插入NULL,如下面的xml所示。但是当我执行这个查询时。它给我错误从字符串转换日期时间时转换失败。我做错了什么。请突出显示我的错误。declare@xmlvarchar(1000)set@xml=''declare@handleintexecsp_xml_preparedocument@handleoutput,@xmlselect*fromOPENXML(@handle,'/ROOT

sql-server - 是否可以为 XML 中的数据安排外键约束?

XML列中的一些节点值引用已知表的整数主键。有没有可能让SQLServer检查这种外键关系? 最佳答案 答案是否定的,你不能。您不能直接使用XMLvalue()在FOREIGNKEY关系。为了好玩,我尝试创建一个计算列,其结果是调用.value('','int')包装在用户定义的函数中。问题是您也不能在FOREIGNKEY中使用计算列。关系。在实际约束之外,您可以尝试对传入的INSERT执行验证和UPDATE触发器中的语句......但这已经成为一个困惑的解决方案。正如Damien所说-如果您想强制执行外键约束,这实际上不属于XML

sql-server - 查询多个 XML 值

BobVillaTomWhateverSarahkajdl我如何查询拥有TomWhatever作者的任何记录?我见过的大多数查询示例都引用值[x],但我想搜索所有作者。DECLARE@authorasvarchar(100)SET@author='TomWhatever'SELECTxmlfield.value('/book/author')WHERExmlfield.value('/book/author')=@author 最佳答案 答案在这里DECLARE@xXMLSET@x='BobVillaTomWhateverSarah

sql - 如何连接来自 SQL Server XML 查询的数据?

我有一个SQL查询返回下面的XMLelectronics0x58phones0x5AC0curvy-simplicity65546等等我想要的输出是一个包含两列(Url和ShortenedUrl)的表,数据以url方式连接,如下所示。Url|ShortenedUrlelectronics/phones/curvy-simplicity|0x58/0x5AC0/65546等等有人能帮忙吗?祝好 最佳答案 您可以像这样使用xquery:selectstuff(@data.query('for$iinrow/urlSegmentretur

sql - 将 XML 插入 SQL Server 表

鉴于此XML:我需要以这种格式将它插入到SQLServer中的表中:BatchIDBatchNameDocumentID1FredFlintstone2691FredFlintstone61FredFlintstone2992BarneyRubble2692BarneyRubble6此SQL:SELECTXTbl.XCol.value('./@BatchID','int')ASBatchID,XTbl.XCol.value('./@BatchName','varchar(100)')ASBatchName,XTbl.XCol.value('DocCollection[1]/Docume