4

下面,您会注意到我尝试从 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\100\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

4

1 回答 1

3

第一个错误:

TCP Provider:远程主机强行关闭了现有连接。

通讯链路故障

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

第二个错误:

Sqlcmd:错误:Microsoft SQL Server Native Client 10.0:通信链路故障。

除了可执行文件本身之外,SQLCMD.EXE 还需要运行“Binn”文件夹中的其他文件。附加到现有的 SYSTEM "PATH" 环境变量或在\\Control Panel\All Control Panel Items\System\Advanced system settings\Environment Variables\.

Variable name: PATH
Variable value: C:\Program Files\Microsoft SQL Server\100\Tools\Binn\
于 2017-03-17T05:25:38.330 回答