【问题标题】:BCP Syntax issuesBCP 语法问题
【发布时间】:2016-11-14 13:35:06
【问题描述】:

所有,我正在尝试编写一个查询,我可以每天从 SQL Server 2008 实例上的批处理文件运行该查询。

我以前从未使用过 BCP,但是在查看了一些在线示例之后,我尝试创建一个真正的基本查询来测试机器上的进程和权限,然后再将选择查询扩展到所需的数据集。

我正在使用:

 bcp    
"SELECT manifest_dt from EasyShip_050300.airwaybills"
queryout C:\Shares\DHL-EXPORT-TEST\file.txt -SGRENSON-CARRIER\DHLEASYSHIP -c -T

它似乎与我可以在网上找到的几乎所有示例相匹配,但每次执行此查询时都会收到错误:

Msg 102, Level 15, State 1, Line 6
Incorrect syntax near 'queryout'.

如果有人有任何指点,将不胜感激。

【问题讨论】:

  • 我的猜测是 -SGRENSON-CARRIER\DHLEASYSHIP 您是否尝试过使用不带 - 或使用 [ ] 的服务器名称?
  • 按照 Dan Guzman 的建议,尝试从命令窗口而不是 SSMS 查询窗口运行 bcp

标签: sql-server tsql bcp


【解决方案1】:

我相信你应该也有语音标记中的输出文件路径,像这样;

 bcp    
"SELECT manifest_dt from EasyShip_050300.airwaybills"
queryout "C:\Shares\DHL-EXPORT-TEST\file.txt" -S GRENSON-CARRIER\DHLEASYSHIP -c -T

另外,在您的 -S 服务器声明之后放置一个空格,看看是否有帮助。

【讨论】:

    【解决方案2】:

    让我用我知道可以在我的环境中工作的两个通用命令进行回复(使用可信连接)。看看他们是否也适用于你的,然后从那里开始工作:

    -- default row separator, column separator
    DECLARE @stmt VARCHAR(8000);
    SET @stmt=
        'BCP '+
        '"SELECT*FROM INFORMATION_SCHEMA.TABLES" '+
        'QUERYOUT "C:\Temp\information_schema.txt" '+
        '-c -T -S ' + @@SERVERNAME + ' -d ' + DB_NAME();
    EXEC master.sys.xp_cmdshell @stmt;
    
    -- comma separated:
    DECLARE @stmt_c VARCHAR(8000);
    SET @stmt_c=
        'BCP '+
        '"SELECT*FROM '+QUOTENAME(DB_NAME())+'.INFORMATION_SCHEMA.TABLES" '+
        'QUERYOUT "C:\Temp\information_schema.csv" '+
        '-c -t, -T -S ' + @@SERVERNAME;
    EXEC master.sys.xp_cmdshell @stmt_c;
    

    如果它们有效,请SELECT @stmt_c; SELECT @stmt; 看看它们是如何形成的。然后看看你的命令有什么不同。

    【讨论】:

      【解决方案3】:

      BCP 是一个命令行实用程序,因此您需要从命令提示符而不是 SQL 查询窗口运行它。

      【讨论】:

      • 不一定,您可以在 SSMS 中使用 xp_cmdshell 运行它,没问题。我最近因为一个工作项目不得不这样做。
      • @RichBenner - Dan 注意到其他答案错过的是 OP 收到数据库引擎错误消息;这意味着发布者试图在不使用xp_cmdshell(或SQLCMD 模式)的情况下从SSMS 运行bcp
      • 没错,我最初是在查询窗口中尝试的,但现在我正在尝试使用 PowerShell。错误消息现在不同了,所以我希望能有所收获。
      猜你喜欢
      • 1970-01-01
      • 2014-02-20
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 2011-05-17
      • 1970-01-01
      相关资源
      最近更新 更多