2016-09-13 56 views
3

我有这样的代码运行,没有错误,我得到了结果。如何在使用BCP时在@ SqlStr中进行多选择

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

我猜可能bcp中的@salstr不支持像这样的嵌套选择。但任何人都知道什么是最好的方法?非常感谢你用 –

回答

0

当您导出xml时,您可以轻松地从两个或多个查询中编写xml字符串。或者你可以导出更多行的表(其中行可以是xml数据类型)。

相关问题