📜  sqlcmd xml 输出在每 2033 个字符后插入换行符 - SQL (1)

📅  最后修改于: 2023-12-03 15:20:18.090000             🧑  作者: Mango

SQLCMD XML - 输出格式控制

简介

SQLCMD 是一个基于 SQL Server 的命令行实用程序,它提供了一种能够在命令行界面执行 SQL 脚本的环境。SQLCMD 可以方便地将 SQL 查询的结果输出到控制台、文本文件、XML 文件等多种格式中。

在 SQLCMD 中执行查询语句时,默认情况下输出结果是以表格格式显示的。但使用 SQLCMD XML 输出格式时,可以将结果以 XML 格式输出。这种格式尤其适合用于 Web 应用程序的数据交换、数据传输等场合。

然而,在 SQLCMD XML 输出中,每 2033 个字符后会自动插入一个换行符,这可能会影响结果的显示,因此我们需要对输出结果进行格式控制,本文将为大家介绍如何解决这个问题。

SQLCMD XML 输出格式的设置

使用 SQLCMD XML 输出格式,需要在 SQL 查询语句的开头添加以下语句:

:setvar SQLCMDXML ON

此时,SQLCMD 将以 XML 格式输出查询结果。

SQLCMD XML 输出格式的控制

SQLCMD XML 输出的结果每 2033 个字符后会插入一个换行符,这可能会影响结果的显示,因此我们需要控制输出结果的格式,以恰当地呈现查询结果。

可以使用以下脚本来控制 SQLCMD XML 输出的格式:

:XML ON
:SETVAR FORMAT XML

上面的脚本将 SQLCMD XML 输出的格式设置为 XML,这将使 SQLCMD 输出结果不会自动添加换行符。

然后,你可以使用以下命令将查询结果输出到 XML 文件中:

SQLCMD -S Server -d Database -E -i myQuery.sql -o myData.xml
结果示例

下面是一个简单的示例,演示如何使用 SQLCMD XML 控制输出格式:

:setvar SQLCMDXML ON
:XML ON
:SETVAR FORMAT XML

SELECT [ID], [Name], [Age]
FROM [MyTable]
WHERE [Age] > 20

上面的脚本设置 SQLCMD 以 XML 格式输出查询结果,并且不会自动添加换行符。使用 SQLCMD 命令将查询结果输出到 XML 文件中,如下所示:

SQLCMD -S Server -d Database -E -i myQuery.sql -o myData.xml

这将在 myData.xml 文件中输出查询结果。

总结

SQLCMD XML 输出格式可以将查询结果以 XML 格式输出,并且控制输出结果的格式。在默认情况下,SQLCMD XML 输出的结果会自动添加换行符,会对结果的显示造成影响。但我们可以通过控制 SQLCMD XML 输出格式来解决这个问题。现在,你可以轻松地使用 SQLCMD XML 输出格式,将 SQL 查询的结果以 XML 格式输出到不同的输出流中。