查询 SQL 服务器的 bcp 问题

bcp Issue with Query SQL Server

我一直在试验 bcp,因为它是创建文本文件的一种非常优雅的方式。但是,由于某种原因,我的查询不起作用。我确信这非常简单,但如果有人能指出我的愚蠢之处,我将不胜感激。

因为我对bcp不是很熟悉,可能是因为 (, [ ] 字符?我需要用 "?

转义这些字符吗?
declare @Result int

exec @Result = master.dbo.xp_cmdshell 
                     'bcp "SELECT ''H'', 1227, 1227, 1227, 1227, 
                                  [Check Num], GETDATE(), [Control Num], 
                                  [Clm Spec 1], [Clm Date], [Dlr Num], 
                                  UPPER([Dlr Name]), [Amt Claimed], 
                                  [Amt Appr], [Amt Paid], 
                                  Address1, Address2, City, State, Zip + ''|''     
                           FROM DBNAME.dbo.tblName" queryout "C:\MyTable.txt" -c -t"|" -S SERVERNAME -T'

与 SQL 不同,cmd.exe 无法处理分成多行的命令。如果您在一行中全部重写命令,您将得到一个结果。

(cmd.exe 确实允许 ^ 作为行继续标记,但引号将其打断)

但是如果您可以访问服务器,则直接从命令行执行基本的 bcp 操作可能更容易。 PowerShell 很乐意让您编写和编辑多行带引号的字符串。