克服 SQL 服务器中 XML 输出的 2GB 限制

Overcome 2GB limit on XML output in SQL Server

每天都有一个进程从 SQL 服务器数据库生成 XML 文件。

在内部,它是作为包含在存储过程中的一系列嵌套 "FOR XML..." 查询来实现的。 Powershell 脚本执行存储过程并处理输出。

最近,存储过程生成的数据量超过 2 GB,由于 SQL 服务器中 XML 数据类型大小的硬限制,进程终止。

我的问题是,绕过该限制的最佳方法是什么?显然,在 SQL 服务器中使用 XML 数据类型是不行的,但我猜人们会以某种方式 do 生成大型 XML 文件 SQL 服务器数据库。

请调整它以在命令提示符下在您的环境中进行测试。它正在使用 Windows 身份验证。

"c:\Program Files\Microsoft SQL Server\Client SDK\ODBC0\Tools\Binn\bcp.exe" "EXEC DBNAME.dbo.usp_name;" queryout "e:\Temp\XMLOutput.xml" -T -x -c -C 1252 -a 32768 -S "DBServerName,1433"