Dopo aver letto one answer e second answer e infopage on sqlcmd non riesco ancora a ottenere quanto segue per funzionare.Come evitare il troncamento sqlcmd con il risultato della query del percorso xml
Sto provando a interrogare un risultato in un file xml utilizzando un file sqlcmd in batch.
Il batchfile assomiglia a questo:
sqlcmd -R -d DBName -i "c:\inputquery.sql" -h-1 -y 0 -o "c:\outputfile.xml"
la query SQL simplicated è:
:XML ON
SELECT '<?xml version="1.0" encoding="UTF-8"?>' +
CAST((
SELECT Columns FROM Table
FOR XML PATH ('Product'), ROOT('Products')
)
AS NVARCHAR(MAX))
L'uscita è un file XML di circa 1025Kb briciolo una stringa troncata. Penso che tronca a 1 MB, ma come puoi evitare questo? L'obiettivo è ottenere il risultato dell'interrogazione completa nel file xml. Per quanto ne so, tutte le opzioni sono già state utilizzate. Utilizzando TSQL SSMS2008 a proposito.
Se lavori solo in SSMS, ci sono opzioni per controllare la quantità di dati XML che possono essere restituiti. 1 MB, 2 MB, 5 MB o illimitato. Vedi Strumenti | Opzioni | Risultati della query SQL Server | Risultati alla griglia | Dati XML Non ha un'opzione per "Risultati su file". Ma forse potresti eseguire la query sul Grid e quindi salvare i risultati? –
Se si utilizza SSMS solo allora funzionerebbe, ma ho bisogno di automatizzare il processo con un file batch. Le impostazioni SSMS non hanno effetto sul risultato sqlcmd. Grazie comunque! – J3FFK
Ho usato BCP per fare cose come questa. Ecco un esempio di BCP: http://stackoverflow.com/a/2586615/822072 –