Как экспортировать более 1 МБ в формате XML с использованием sqlcmd и без входного файла? - PullRequest
1 голос
/ 28 марта 2010

В SQL Server 2008 я хочу экспортировать результат хранимой процедуры в файл с помощью утилиты sqlcmd . Теперь конец моей хранимой процедуры - это оператор select с предложением «for xml path ..» в конце.

Я прочитал на BOL , что если я не хочу, чтобы мой вывод был обрезан при достижении размера файла 1 МБ, я должен использовать эту команду : XML ON , но она должна быть помещена перед вызовом хранимой процедуры.

  • Кто-нибудь из ваших экспертов знает, возможно ли это сделать без указания входного файла для sqlcmd? (Я вызываю sqlcmd так:

exec master..xp_cmdshell 'sqlcmd -Q"exec storedProcedureName @param1=value1, @param2=value2" -o c:\exportResults.xml -h-1 -E',

но можно сохранить «StorageProcedureName» и его параметры, что будет означать 1 входной файл на передаваемые параметры в sqlcmd)

  • Кроме того, кажется, что я не могу использовать bcp вместо sqlcmd, потому что моя хранимая процедура создает временную таблицу и выполняет на ней операторы DML?

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Если вы можете использовать powershell в качестве исполняющей оболочки, то у вас также может быть :XML ON в параметре -Q, просто закодируйте конечный символ \\n (`n в powershell)

sqlcmd -Q":XML ON\`n exec storedProcedureName @param1=value1, @param2=value2" -o c:\exportResults.xml -h-1 -E
0 голосов
/ 30 марта 2010
...