草庐IT

Linq-To-SQL

全部标签

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

sql - 使用带有 XMLNS 的 OPENXML 命令将 XML 导入 SQL 服务器

我有以下代码将xml导入SQLDECLARE@XMLASXML,@hDocASINT,@SQLNVARCHAR(MAX)SELECT@XML=XMLDataFROMXMLwithOpenXMLEXECsp_xml_preparedocument@hDocOUTPUT,@XMLSELECTrid,uidFROMOPENXML(@hDoc,'/PportTimetable/Journey')WITH(rid[varchar](50)'@rid',uid[varchar](100)'@uid')EXECsp_xml_removedocument@hDocGO我可以让代码工作,但只有当它不包含

sql - 有没有比这更快的方法从 T-SQL 中的 XML 节点中提取数据?

我目前正在尝试在T-SQL中创建一个存储过程,它将一个XML表作为其输入,然后将其中的数据插入到一个临时表中。我使用的XML格式如下:我用来将此XML数据插入临时表的SQL格式如下:INSERTINTO#TempTableSELECTT.c.value('@MyFirstColumn','varchar(50)'),T.c.value('@MySecondColumn','varchar(50)'),...FROM@x.nodes('//Table/row')T(c)但是,我使用的是包含150列和超过200,000行的XML表。目前,在10,000行上执行此SQL大约需要142秒,因此

SQL优化: Xml or Delimited String

希望这只是一个涉及Sql2008查询性能优化的简单问题。我曾为在ETL流程和部分网站中大量使用存储过程的公司工作过。我见过他们需要根据一组有限的键值检索特定记录的场景。我已经看到它以3种不同的方式处理,如下面的伪代码所示。连接字符串并执行它的动态SQL。EXEC('SELECT*FROMTableXWHERExIdIN('+@Parameter+')'使用用户定义的函数将分隔的字符串拆分成表格SELECT*FROMTableYINNERJOINSPLIT(@Parameter)ONyID=splitId使用XML作为参数而不是分隔的varchar值SELECT*FROMTableZJO

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

.net - 如何在 Xml 序列化、DataContractSerializer 和 LINQ to XML 之间进行选择以序列化简单对象树?

我需要将一棵简单对象树作为XML序列化到文件中或从文件中序列化——自从我上次不得不这样做以来,世界已经发生了变化……(我不关心XML的模式,只要支持人员可以在需要时理解该文件)那么,在.net中的不同“easyxml”API之间进行选择时,需要考虑哪些权衡? 最佳答案 这就是我思考这些选项的方式:LINQtoXML–完全控制XML和对象的设计,3个选项中代码最多的选项。DataContractSerializer–对XML的控制很少或没有,可以处理大多数对象XmlSerializer–完全控制XML,但您必须以Xml序列化喜欢的方式

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

c - How to convert <node/> to <node></node> with libxml (converting empty elements to start-end tag pair)

生成XML内容时,我得到一个空节点,我希望它是.(由于是c14n的正确形式,因此称为“将空元素转换为开始-结束标记对”的过程)我应该如何转换它?JimGarrison(谢谢)暗示有一种方法可以做到这一点,通过使用xmlBufferCreate、xmlSaveToBuffer、xmlSaveDoc、xmlSaveClose使用xmlSaveOption:XML_SAVE_NO_EMPTY 最佳答案 查看libxml2文档,特别是xmlSaveOption值XML_SAVE_NO_EMPTY

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