查询 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 很乐意让您编写和编辑多行带引号的字符串。
我一直在试验 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 很乐意让您编写和编辑多行带引号的字符串。