在閱讀one answer和second answer和infopage on sqlcmd我仍然無法得到以下工作。如何防止sqlcmd截斷與XML路徑查詢結果
我想在批處理文件中使用sqlcmd查詢一個xml文件的結果。
的批處理文件看起來是這樣的:
sqlcmd -R -d DBName -i "c:\inputquery.sql" -h-1 -y 0 -o "c:\outputfile.xml"
的simplicated 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))
輸出爲約1025Kb絲毫截斷字符串中的XML文件。我認爲它截斷到1mb,但你怎麼能防止這個?目標是將完整的查詢結果導入到xml文件中。據我所知,所有的選項已經被使用了。順便用TSQL SSMS2008。
如果您只是在SSMS中工作,那麼可以選擇控制返回多少XML數據。 1MB,2MB,5MB或無限制。請參見工具|選項|查詢結果| SQL Server |結果到網格| XML數據。它沒有「結果到文件」的選項。但也許你可以運行查詢到網格,然後保存結果? –
如果您只使用SSMS,那麼這將工作,但我需要使用批處理文件自動執行該過程。 SSMS設置對sqlcmd結果沒有影響。不管怎麼說,還是要謝謝你! – J3FFK
我已經使用BCP來做這樣的事情。這是一個BCP的例子:http://stackoverflow.com/a/2586615/822072 –