Sqlcmd:错误:Microsoft SQL Server Native Client 10.0:通信链接失败

问题描述 投票:0回答:3

在下面,您会注意到我试图从 Microsoft SQL Server 2008 的 64 位 Program Files 文件夹中调用的一些 Windows 命令提示符命令

C:\Program Files\Microsoft SQL Server\100\Tools\Binn>SQLCMD -S "SQLI2B2" -d
 "I2B2_CRC-DEV" -i "C:\SVN\ONT\SQL SERVER\DX_SQLSERVER.sql" -E

HResult 0x2746,级别 16,状态 1 TCP 提供程序:现有连接 被远程主机强行关闭了

Sqlcmd:错误:Microsoft SQL Server Native Client 10.0:通信 链接失败。

c:\Program Files\Microsoft SQL Server@\Tools\Binn>

现在,我要连接的数据库(服务器)是SQL Server 2008。我在“Microsoft SQL Server”文件夹下有几个目录。 90、100、110和120。只有100和110有

.\Tools\Binn\SQLCMD.EXE
文件。我在
\\Control Panel\All Control Panel Items\Administrative Tools\Data Sources (ODBC)\Drivers\
中注意到以下驱动程序,所以我不知道客户端驱动程序是否适合我的服务器版本。

Name                            Version
SQL Server                      6.01.7601.17514
SQL Server Native Client 10.0   2009.100.1600.01
SQL Server Native Client 11.0   2011.110.3000.00

命令中的

-E
表示使用 Windows 身份验证,而不是 SQL Server 身份验证(使用实际用户和密码)。

什么可能导致这个错误,什么可以解决它?

备注:

这是在 Windows 7 上找到的。以下解决方案仅适用于早期操作系统。

https://msdn.microsoft.com/en-us/library/ms187005.aspx

sql-server sql-server-2008 sqlcmd sql-server-native-client
3个回答
3
投票

第一个错误:

TCP 提供者:现有连接被远程强行关闭 主持人

通讯链接故障

较小的文件会运行,但如果文件太大,您仍然会收到此异常。我能找到的唯一解决方案是将包含 T-SQL 命令的文件分成多个较小的文件。

第二个错误:

Sqlcmd:错误:Microsoft SQL Server Native Client 10.0:通信 链接失败。

“Binn”文件夹中除了可执行文件本身,还必须有SQLCMD.EXE需要运行的其他文件。附加到现有的 SYSTEM“PATH”环境变量或在

\\Control Panel\All Control Panel Items\System\Advanced system settings\Environment Variables\
.

中添加新的 USER“PATH”环境变量
Variable name: PATH
Variable value: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\

0
投票

我收到这个错误是因为 SQL Server 不喜欢我注释掉的 SQL 行之一。 我的建议是从最简单的代码开始,以验证它不是连接问题,然后从那里开始工作。

被注释掉的行是 --EXEC master..xp_cmdshell 'bcp ... 远程计算机没有运行权限。 后来在被接受的代码中有一行几乎相同的行,所以我认为这是一些模糊的安全补丁错误。 你会认为注释掉的行不会对连接问题产生影响,但我们在这里。


0
投票

Varun Sharma 在第一个答案中提到,他在每一行之后添加了一个 GO 语句。那太过分了。我每 1000 行添加一个 GO,它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.