查询SQL Server的bcp问题

时间:2018-10-26 21:24:41

标签: sql-server bcp

我一直在尝试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'

1 个答案:

答案 0 :(得分:1)

与SQL不同,cmd.exe不能处理分成几行的命令。如果将所有命令全部重写为一行,则会得到结果。

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

但是,如果您有权访问服务器,则从命令行直接执行基本bcp操作可能会更容易。使用PowerShell,您可以愉快地编写和编辑多行带引号的字符串。