Sql server 如何进行多重选择in@SqlStr使用BCP时

Sql server 如何进行多重选择in@SqlStr使用BCP时,sql-server,xml,tsql,bcp,Sql Server,Xml,Tsql,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.EmployeeJ

我有这样的代码运行没有错误,我得到了结果

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中执行多个select时,就像这样

SET @sqlStr = 'select(select * from ##tmpEmployeeJob FOR XML PATH(''EmployeeJob''), ROOT(''Pos.EmployeeJob''),
select * from ##tmpCity FOR XML PATH(''City''), ROOT(''Pos.City''))'
我犯了这个错误

“EmployeeJob”附近的语法不正确


如何进行上述多重选择?

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

错误是什么。我怀疑你会有多个。错误是“EmployeeJob”附近的语法不正确。我猜bcp中的@salstr可能不支持这样的嵌套选择。但是有人知道什么是最好的方法吗?非常感谢您将
替换为
还有,这里很难说,但请确保@sqlStr都在一行中,否则xp\u cmdshell会将其解释为您点击回车键,从而中断命令行界面上的命令。@scsimon先生,非常感谢您。成功了