我使用以下脚本从表中导出数据,这完全正常。
declare @sql varchar(8000)
select @sql = 'bcp "Select * from [CV18].dbo.ZMM002" queryout D:\Share\Vendor_portal_Pending_IBD\bcptest.txt -c -t^| -T -S'+ @@servername
exec master..xp_cmdshell @sql
但我想为它添加标题。我已经找到了一种方法来使用带有标题名称的UNION ALL。
select 'Counter','External_ID','Delivery_Date','Transport_ID','Bill_of_Lading','Delivery_Item','Material','Delivery_QTY',
'Unit','PO_Number','PO_Item'
union all
select * from ZMM002
但是如何在我的bcp查询中添加此union all查询?
我收到语法错误,因为我在union all查询中使用单引号('),这会切断外部单引号,即@sql =' '
答案 0 :(得分:0)
在我看来,最好将此作为后期操作。
导出两个文件,一个带有标题,另一个带有实际数据。然后,使用COPY
命令连接这两个文件。
假设您导出到header.txt
和data.txt
,命令将是
COPY /b "\\path\header.txt"+"\\path\data.txt" "\\path\data.dat"
\\path
将成为您的实际路径。
如果要格式化标题SQL,请将qoutes加倍:
SET @sql='select ''Counter'',''External_ID'',''Delivery_Date'',''Transport_ID'',''Bill_of_Lading'',''Delivery_Item'',''Material'',''Delivery_QTY'',''Unit'',''PO_Number'',''PO_Item''';