我一直在尝试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'
答案 0 :(得分:1)
与SQL不同,cmd.exe
不能处理分成几行的命令。如果将所有命令全部重写为一行,则会得到结果。
(cmd.exe确实允许^
作为行继续标记,但引号将其括起来)
但是,如果您有权访问服务器,则从命令行直接执行基本bcp操作可能会更容易。使用PowerShell,您可以愉快地编写和编辑多行带引号的字符串。