Sql server sqlcmd.exe-共享内存提供程序:管道的另一端没有进程

Sql server sqlcmd.exe-共享内存提供程序:管道的另一端没有进程,sql-server,sqlcmd,Sql Server,Sqlcmd,我读过很多关于这个错误的帖子和文章: 共享内存提供程序:管道的另一端没有进程。 通信链路故障 ……包括: 我可以轻松地从SSM连接,无论是混合模式还是Windows身份验证。但是每当我试图通过sqlcmd.exe运行sql脚本时,就会出现上面显示的错误 以下是我从windows命令shell运行的内容: "C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\sqlcmd.exe" -S localhost

我读过很多关于这个错误的帖子和文章:

共享内存提供程序:管道的另一端没有进程。 通信链路故障

……包括:

我可以轻松地从SSM连接,无论是混合模式还是Windows身份验证。但是每当我试图通过
sqlcmd.exe
运行sql脚本时,就会出现上面显示的错误

以下是我从windows命令shell运行的内容:

"C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\sqlcmd.exe" -S localhost -U sa -P myPassword -i "F:\<mypath>\<myfile>.sql"
“C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\sqlcmd.exe”-S localhost-U sa-P myPassword-i“F:\\.SQL”
以下是我尝试/验证的内容:

  • 我正在Windows 10上运行SQL Server 14.0版
  • 混合模式身份验证已启用,并且我可以从SSM连接
  • 我尝试在cmd行中指定
    127.0.0.1
    而不是
    localhost
  • 已启用共享内存协议
  • 已启用命名管道协议
  • TCP/IP已启用
  • 我的SQL Server服务正在运行-我可以从SSMS连接
  • 我已在windows防火墙中打开端口1433入站和出站,防火墙允许使用SQL Server(作为应用程序)。(即使我关闭防火墙,也会出现同样的错误。)
  • 远程连接已启用
  • SQL Server浏览器服务已启用并正在运行
  • SQL Server代理已启用并正在运行(尽管我认为这不是必需的)
  • 我已重新启动SQL Server服务,并已多次重新启动
  • 最重要的是:这一定与我的输入文件有关,输入文件超过200 Mb。当我运行与上面相同的cmd行语句时,而是指向
    test.sql
    ,它只包含
    selectgetdate()
    ,效果非常好。没有错误,没有连接问题。


    在我尝试了一切之后,我永远都会犯同样的错误。还有什么我可以试试的吗?

    多亏了你,我终于明白了。我不得不添加一个32767作为cmd行参数,大概是因为我的输入脚本太大了。地狱般的
    sqlcmd
    可以给出更真实的错误消息,而不是假装无法连接。连接从来都不是问题。无论如何,我希望这能帮助其他人。

    正如@HerrimanCoder所建议的,-a 32767参数解决了这个问题,在我的例子中,我运行的脚本分别是2个脚本,1.4GB和1.6GB

    我在个人电脑上安装了全新的SQL server 2019。它没有命名管道和启用TCP/IP,我打开它们,再试一次,失败,然后添加参数并顺利执行


    谢谢你的帮助。

    我也经历了同样的经历,我尝试启用TCP IP、共享内存和名称管道,但它对我没有帮助,我遵循的就是这个


    它说要添加一个参数,对我来说非常有效,请检查完整的步骤。

    您在SQL Server错误日志中看到任何相关消息吗?