我已经阅读了很多有关该错误的文章和文章:
共享内存提供程序:管道的另一端没有进程。 通信链接失败。
...包括以下内容:
通过混合模式和Windows身份验证,我可以轻松,始终从SSMS进行连接。但是,每当我尝试通过sqlcmd.exe
运行sql脚本时,都会收到上面显示的错误。
这是我从Windows命令外壳运行的内容:
"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"
这是我尝试/验证过的内容:
SQL Server version 14.0
。127.0.0.1
而不是localhost
。 最重要的一点:这必须与我的输入文件有关,该文件超过200 Mb。当我运行与上述相同的cmd-line语句,而指向test.sql
时,该语句只包含select getdate()
,因此它运行良好。没有错误,没有连接问题。
经过一切尝试,我永远都遇到同样的错误。我还能尝试什么?
答案 0 :(得分:1)
按照@HerrimanCoder的建议,-a 32767参数解决了这个问题,在我的情况下,我正在运行一个脚本2个脚本,分别为1.4GB和1.6GB。
我在个人计算机上安装了SQL Server 2019的全新安装。它没有启用命名管道和TCP / IP,我将它们打开,再次尝试,失败,然后添加参数并顺利执行。
感谢您的帮助。
答案 1 :(得分:0)
由于this post,我终于知道了。我不得不添加-a 32767
作为cmd行参数,大概是因为我的输入脚本很大。地狱sqlcmd
可以给出更真实的错误消息,而不是假装它无法连接。连接从来都不是问题。无论如何,我希望这可以帮助其他人。
答案 2 :(得分:0)