1

我需要做什么:

  • 我想将数据从 SQL Server 2008 导出为CSV特定格式。
  • 不能为此使用该BCP实用程序。
  • 我已经CSV使用导出文件,SQLCMD但唯一的问题是我需要“Enter”作为 CSV 文件中的列或字段分隔符。
  • 然后我将SQLCMD文件保存为 Windows 批处理文件并使用 CMD 执行

例如,(注意:test.sql包含一个PLSql Block返回列数据。):

  1. 我已将以下语句保存为名为 test.bat 的批处理文件:
   sqlcmd -S %1 -U %2 -P %3 -v DatabaseName = %4 -i %current_dir%\test.sql -o %current_dir%\test.csv -y0 -I -s "
   "
  1. 然后使用以下命令在 CMD 中执行以上:
   test.bat localhost user pass db_name
  1. 但它给出的输出如下:
   ""REC"""LINE"
  1. 我想要像这样的输出:
   "Rec"
   "LINE"

任何输入表示赞赏!

4

2 回答 2

0

[评论太长了]

您的列表中有我不能为此使用 BCP 实用程序。. 在评论部分,您回复BCP 在我们的客户端上给出了 xp_cmdshell 错误。.

你知道你可以启用使用xp_cmdshell,对吧?我不是说你必须这样做,而且客户可能不会同意。您可以通过以下方式启用xp_cmdshell

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

之后您可以使用 BCP,这可能会使您的问题更容易解决吗?

于 2016-02-10T10:08:56.223 回答
0

我在我的表中使用了这种语法,当我打开文件时,它给了我一些你想要的结果。如果这是您需要的,请尝试一下。

 sqlcmd -S .\SQLEXPRESS -d Atrax_BazaRM -E -Q "select * from Njesite" -o "E:\MyData.csv" -h-1 -s "
    "
于 2016-02-10T09:21:00.057 回答