我需要以XML格式返回结果集,这样可以正常工作,但是如果增加了记录数,我的xml输出truncated就是我的查询
select t.id,t.name,t.address from test FOR XML AUTO, ROOT('Response'), ELEMENTS
Run Code Online (Sandbox Code Playgroud)
但是我设置了一些选项来增加输出结果集,如..
Tools --> Options --> Query Results --> SQL Server --> Results to Text --> Maximum
number of characters displayed in each column
Tools --> Options --> Results --> Maximum characters per column
Run Code Online (Sandbox Code Playgroud)
但我仍然无法得到我想要的结果.
请建议我的解决方案
编辑:然而,当我点击XML时,它在另一个查询窗口中打开,此处显示所有xml,但它不返回所有xml而不是截断的xml.
谢谢....
在读完一个答案和第二个答案以及sqlcmd上的infopage之后,我仍然无法让以下工作.
我试图使用批处理文件中的sqlcmd将结果查询到xml文件中.
批处理文件如下所示:
sqlcmd -R -d DBName -i "c:\inputquery.sql" -h-1 -y 0 -o "c:\outputfile.xml"
Run Code Online (Sandbox Code Playgroud)
简化的SQL查询是:
:XML ON
SELECT '<?xml version="1.0" encoding="UTF-8"?>' +
CAST((
SELECT Columns FROM Table
FOR XML PATH ('Product'), ROOT('Products')
)
AS NVARCHAR(MAX))
Run Code Online (Sandbox Code Playgroud)
输出是一个大约1025Kb的xml文件,一个截断的字符串.我认为它截断到1mb,但你怎么能阻止这个呢?目标是将完整的查询结果放入xml文件中.据我所知,所有选项都已使用.顺便使用TSQL SSMS2008.
我有一个存储过程生成具有FOR XML功能的XML .当我运行存储过程时,我得到了格式精美的XML.
当我尝试使用bcp将此结果导出到文件中时
declare @sql varchar(8000)
select @sql = 'bcp "exec sp_ExportXml" queryout C:\Filename.xml -S (local) -T -w'
exec master..xp_cmdshell @sql
Run Code Online (Sandbox Code Playgroud)
我得到格式错误的xml标签内的换行符,例如
<Division>3</Divi
sion>
Run Code Online (Sandbox Code Playgroud)
我完全无能为力,我尝试了几个不同的参数,bcp queryout但始终得到相同的结果.
任何想法都非常感谢!谢谢