2016-09-13 1 views
3

У меня есть код вроде этого, без ошибок, и я получил результат.Как сделать множественный выбор в @ SqlStr при использовании BCP

DECLARE @fileName VARCHAR(50) 
DECLARE @sqlStr VARCHAR(1000) 
DECLARE @sqlCmd VARCHAR(1000) 
SET @fileName = 'C:\SQL_Queries\test.xml' 
SET @sqlStr = 'select * from ##tmpEmployeeJob FOR XML PATH(''EmployeeJob''), ROOT(''Pos.EmployeeJob'')' 
SET @sqlCmd = 'bcp "' + @sqlStr + '" queryout ' + @fileName + ' -w -T' 
EXEC xp_cmdshell @sqlCmd 

Но когда я хочу сделать множественный выбор в sqlstr как этот

SET @sqlStr = 'select(select * from ##tmpEmployeeJob FOR XML PATH(''EmployeeJob''), ROOT(''Pos.EmployeeJob''), 
select * from ##tmpCity FOR XML PATH(''City''), ROOT(''Pos.City''))' 

Я получил эту ошибку

Неправильный синтаксис около 'EmployeeJob'

Как может Я делаю множественный выбор, как показано выше?

+0

какая ошибка. я подозреваю, что у вас будет несколько. – scsimon

+0

Ошибка указана Неверный синтаксис рядом с «EmployeeJob» –

+0

Я предполагаю, что @salstr в bcp не поддерживает вложенный выбор, подобный этому. Но кто-нибудь знает, что лучше всего подходит? Большое спасибо –

ответ

0

При экспорте xml вы можете легко составить строки xml из двух или более запросов. Или вы можете экспортировать таблицу с большим количеством строк (где строки могут быть xml-типом данных).