【问题标题】:BCP syntax to create CSV file用于创建 CSV 文件的 BCP 语法
【发布时间】:2017-02-08 16:48:04
【问题描述】:

当我尝试运行这个程序时,它只是给了我 BCP 可用的开关。这是我第一次接触 BCP。我正在尝试编写一个存储过程来将一天的数据导出到 CSV。

declare @startdate as datetime = '2017-01-24'
declare @enddate as datetime = dateadd(day,1,@startdate)

declare @sql varchar(8000)

set @sql =
'bcp "select * from tblBOJEOJ
where system = ''MKEV03''
and [date] between ''' + cast(@startdate as nvarchar(11)) + ''' and ''' + cast(@enddate as nvarchar(11)) + ''' " 
queryout D:\Temp\Galaxy\BOJEOJ_.csv
-c -t, -T -S ' + @@SERVERNAME 

print @sql

exec master..xp_cmdshell @sql

这就是返回

谢谢

【问题讨论】:

  • 您使用的是哪个 dbms? (该代码是特定于产品的。)
  • 您能否在问题中包含您的 PRINT 语句的结果?
  • 下面的单行 BCP 修复了它。

标签: sql-server bcp


【解决方案1】:

BCP 很奇怪。将BCP 命令保留在单行中

declare @sql varchar(8000)

set @sql =
'bcp "select * from tblBOJEOJ where system = ''MKEV03'' and [date] between ''' + cast(@startdate as nvarchar(11)) + ''' and ''' + cast(@enddate as nvarchar(11)) + ''' " queryout D:\Temp\Galaxy\BOJEOJ_.csv -c -t, -T -S ' + @@SERVERNAME 

print @sql

exec master..xp_cmdshell @sql

【讨论】:

  • 感谢修复!我确实必须在选择中将 dbname.dbo 添加到我的表中。
  • @jwhitf4770 - 你可以使用-d 参数
  • 是否有在文件中放置列名的开关?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 2020-02-21
  • 2022-10-20
相关资源
最近更新 更多