草庐IT

synpipe_server

全部标签

sql-server - 微软 SQL Server 2005/2008 : XML vs text/varchar data type

将XML存储为XML类型而不是text/varchar/ntext是否更有意义(服务器端验证XML/schema/dtd除外)?我不打算在数据库端进行任何XML操作。我调查的目的是减小数据库大小。我可以使用XMLdatatype吗?用于此目的的非类型化XML?有什么优点和缺点?我找到了一个articlerelatedtothetopic,但我不确定作者的假设/结论是否正确。 最佳答案 如果将xml存储在xml类型的列中,数据将不会存储为简单文本,就像在nvarchar的情况下一样,它将存储在某种已解析的数据树中,这反过来会小于未解析

sql-server - 如何在 SQL XML 中使用 CDATA

有人可以帮我提供一个XML输出模板吗?客户要求我创建一个xml输出文件。然后该文件将输入到客户的CRM。所以这就是为什么,它必须与客户请求的模板完全匹配。除了几个字段的CDATA之外,我已经设法将它完美匹配。下面是您可以用于测试目的的查询。我需要对字段Client和Area进行CDATA换行。我还附上了通过运行以下代码获得的输出IfOBJECT_ID('tempdb..#Temp')isNotNULLDroptable#TempCREATETABLE#Temp([ShiftDate][date]NULL,[Ref_Num][varchar](20)NULL,[Agency_Worker

sql-server - 如何通过REST查询SQL Server获取XML

我们一直在使用Web应用程序框架来构建需要能够查询SQLServer数据库并以XML形式获取结果的应用程序。过去,框架提供了这种能力。但该功能现已弃用。所以我们在想,该框架允许我们通过HTTP轻松查询REST服务,那么为什么不使用SQLServerHTTP端点。但是,我们随后了解到,从SQLServer2008开始,HTTP端点已被弃用。这不是设计future架构的平台。Azure(以前称为SQLDataServices)本来打算提供类似的服务,但现在只支持TDS协议(protocol),不支持http。所以在Azure中找不到REST。建议的替代方法是使用WCF数据服务(以前称为AD

sql-server - SQL Server 中的 XQuery 对零值执行 SUM

我正在尝试提取存储在一些格式不正确的xml列中的货币金额(没有为XML列定义的模式,我猜这是问题的一部分)。每当遇到值为0的节点时,我都会收到转换错误。例子:selectxml.value('sum(/List/value)','numeric')sumfrom(selectcast('12'asxml)xml)a给出总和3while:selectxml.value('sum(/List/value)','numeric')sumfrom(selectcast('00'asxml)xml)a引发错误:“将数据类型nvarchar转换为数字时出错。”知道如何在汇总零值节点列表时让我的查询

sql-server - 如何将SQL查询结果保存到磁盘上的XML文件

我想将表从SQLServer2012导出到XML文件。我找到了niceanswer和here如何从SQLServer数据库查询生成XML结果,但我仍然不知道如何将此结果物理保存到文件中。SQL查询是:SELECT[Created],[Text]FROM[db304].[dbo].[SearchHistory]FORXMLPATH('Record'),ROOT('SearchHistory')我使用MicrosoftSQLServerManagementStudio来执行这个结果。我在结果窗口中看到了XML,但我无法保存它。上下文菜单中有“将结果另存为..”,但是对于98900行,我用这

sql-server - 从 XML 转换为 SQL Server 日期时间时出现毫秒错误

我遇到了一个与将日期时间从XML(ISO8601:yyyy-mm-ddThh:mi:ss.mmm)转换为SQLServer2005日期时间相关的问题。问题是转换毫秒是错误的。我已经使用nvarchar中的convert(datetime,MyDate,126)测试了隐式和显式转换,结果是一样的:OriginalResult2009-10-29T15:43:12.9902009-10-2915:43:12.9902009-10-29T15:43:12.9912009-10-2915:43:12.9902009-10-29T15:43:12.9922009-10-2915:43:12.99

sql - 如何从 SQL Server 中的 XML 值获取元素名称列表

我在SQLServer2k8中有一个包含XML列的表。以下SQL检索一些XML:SELECTTOP1my_xml_columnFROMmy_table假设它返回以下XML我想得到的是/a/a/b/a/c/a/c/d/a/e换句话说,我怎样才能让SQLServer告诉我XML的结构?我可以执行以下操作来获取各个元素的所有名称:SELECTC1.query('fn:local-name(.)')FROMmy_tableCROSSAPPLYmy_xml_column.nodes('//*')AST(C1)也许如果有一个等价于“local-name()”的返回元素的完整路径的方法,就可以做到这

sql-server - CTE 和 FOR XML 生成嵌套的 XML

我在数据库中有一个邻接表,想通过SQLSP将XML格式的数据传递给客户端。我正在尝试使用CTE和FORXML,但我没有让XML节点嵌套。仅供引用,这将代表站点地图。表结构:CREATETABLE[dbo].[PageHierarchy]([ModuleId][int]NOTNULL,[PageId][int]IDENTITY(1,1)NOTNULL,[ParentPageId][int]NULL,https://www.coder.work/article/1001039[nvarchar](100)NULL,[PageTitle][nvarchar](50)NOTNULL,[Page

sql-server - 如何从 SQL Server 获取 ROOT 节点名称

我有一个表,其中ID是integer而XML是XML数据类型。IDXML----------------------1...2...3...4...如何得到下面的结果?IDXML-------------1Form12Form13Form24Form3 最佳答案 使用local-name()函数selectID,XML.value('local-name(/*[1])','varchar(100)')fromyourtable 关于sql-server-如何从SQLServer获取ROO

sql-server - 为什么从 XML 变量插入选择变量表这么慢?

我正在尝试将XML文档中的一些数据插入到变量表中。令我震惊的是,相同的select-into(批量)立即运行,而insert-select需要很长时间,并使SQLServer进程在查询执行时负责100%的CPU使用率。我查看了执行计划,确实存在差异。insert-select添加了一个额外的“Tablespool”节点,即使它没有分配成本。然后“表值函数[XML阅读器]”得到92%。使用select-into,两个“表值函数[XML阅读器]”各获得49%。请解释“为什么会这样”和“如何(优雅地)解决这个问题”,因为我确实可以批量插入到临时表中,然后依次插入到变量表中,但这太令人毛骨悚然