在SSMS中使用BCP和xp_cmdshell与T-SQL。 “该命令的语法不正确”

时间:2016-01-02 20:06:43

标签: sql-server tsql ssms bcp xp-cmdshell

所以,我正在玩BCP来更好地了解它,并遇到了一个我无法搞清楚的问题。我收到一个错误,“命令的语法不正确”。

我已经测试了正确构建的完整文件路径,以及正确完成的select查询。有什么想法吗?

我使用的代码是:

DECLARE @fileName varchar(128)
DECLARE @filePath varchar(128)
DECLARE @completeFilePath varchar(128)
DECLARE @sqlCmd varchar(4000)
DECLARE @BCPSwitches VARCHAR(64)
SET @filePath = 'xxxxxx'

SELECT TOP 5 [EMP]
  ,[SSNO]
  ,[NAME]
  ,[STREET]
INTO #ParticipantIdentifiers
FROM xxxxxxxxx

SET @BCPSwitches = '-w -T -t |'
SET @fileName = 'xxxxx.txt'
SET @completeFilePath = @filePath + @fileName
SET @sqlCmd = 'bcp "SELECT * FROM #ParticipantIdentifiers" queryout "'+ @completeFilePath + '" ' + @BCPSwitches 

EXEC DemoDB..xp_cmdshell @sqlCmd

1 个答案:

答案 0 :(得分:1)

我认为终结者“|”之后-t(在@BCPSwitches中)也需要用引号括起来,因为shell可能会将其解释为输出管道。