Мне трудно понять, как записать XML на мой жесткий диск в SQL Server. Я понимаю, что мог бы сделать что-то вроде этого:
EXEC xp_cmdshell 'bcp "@@@INSERT SELECT/FOR XML QUERY@@@" queryout "C:\test.xml" -T -c -t'
Но мой XML-запрос SELECT/FOR занимает около 40 строк, поэтому я бы не хотел. Я попытался сохранить XML как @storedXML, сохранить его в таблице, а затем запросить эту таблицу с помощью bcp:
CREATE TABLE xmlOutput(outXML xml)
INSERT INTO xmlOutput(outXML)
VALUES (@storedXML)
DECLARE @sqlCmd VARCHAR(1000)
SET @sqlCmd = 'bcp "SELECT * FROM xmlOutput" queryout C:\test.xml -c -T -t'
EXEC xp_cmdshell @sqlCmd
Но все, что меня беспокоит, это «Невозможно открыть файл данных хоста BCP».
bcp "exec myDB.dbo.myProcedure" queryout "C:\test.xml" -T -c
? - person AlwaysLearning   schedule 21.12.2019