使用回车创建XML输出从SQL Server 2014返回

时间:2016-07-07 22:22:50

标签: sql sql-server xml export carriage-return

我在SQL Server中编写代码来创建XML输出。但是,这种出口没有回车。

我最初在整个XML输出代码周围构建了一个替换语句,该代码将在节点之间嵌入回车符,但因为这只允许我一次导出少量数据,所以它不是足够的长期。当我尝试在较大的数据集上运行它时,它会截断大约65000个字符的文本。

我试图将整个语句转换为nvarchar(max)以增加输出大小,但这似乎也不起作用。有没有人有任何关于如何做到这一点的建议,一旦文件已经从SQL输出就不能找到+替换?

1 个答案:

答案 0 :(得分:1)

首先,我会先教育客户。我想它是让人类可读,但它也扩大了返回集的大小。他们可能会坚持自己的枪支,但教育往往会阻止人们把钱花在愚蠢的废话上。

其次,我不会在SQL Server中这样做。这是一种用户界面类型的任务(此处包括服务端点为“用户”界面),而不是数据库中要完成的任务。在SQL Server之外执行此操作可以更好地访问XML DOM,如果它们是真正的CRLF而不是& #__;数字等价物。如果是后者,则必须执行替换功能。

如果您必须在SQL Server中执行此操作,请获取XML结果,然后替换。我会以简单的方式做到这一点并替换>使用> CRLF并查看是否可以接受,因为它耗时较少。没有DOM,很难知道开放标签和结束标签之间的区别。你可以使用正则表达式找到正确的标签,如果你想走得那么远,但是SQL Server的实现不如许多编程语言那么好,所以这将非常耗时。

归根结底,如果他们愿意付出一些无用的东西,那就是他们的宝贝,但这是一种无用的运动IMO。