【问题标题】:input line is too long.the syntax of command is incorrect in batch file when trying to execute SQL query using BCP utility输入行太长。尝试使用 BCP 实用程序执行 SQL 查询时,批处理文件中的命令语法不正确
【发布时间】:2019-03-29 20:45:45
【问题描述】:

我有一个场景,比如我需要运行 SQL 选择查询以使用 BCP 实用程序将数据导出到 CSV 文件,为此我创建了一个批处理文件并从命令提示符运行此批处理文件。当我将带有较少行代码的 SQL 查询(例如 50,60)作为参数传递给批处理文件时,它运行完美,但是当我尝试使用超过 300 行代码传递 SQL 查询时,它会抛出错误,例如输入行太长和命令语法不正确,谁能帮我解决这个问题?

谢谢, 拉古

【问题讨论】:

  • 创建存储过程
  • 没有权限创建程序数据库是只读的
  • 创建一个虚拟数据库并在那里创建存储过程。在 SP 中,通过 3 部分命名引用实际的数据库名称和表

标签: sql-server batch-file bcp


【解决方案1】:

尝试调用其中一种 sql 命令行执行工具。 isql、osql、sqlcmd。如果我没记错的话,这些将允许您将文件作为参数传递给查询。您可以绕过参数大小的 DOS cmdshell 限制。似乎这就是正在发生的事情。只需创建一个 DOS 批处理文件来执行 isql/osql 或 sqlcmd(isql/osql 只是较旧的版本。SQLCMD 是最新的。不确定您使用的是哪个版本的 SQL Server。

【讨论】:

    猜你喜欢
    • 2019-09-19
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    相关资源
    最近更新 更多