SQL Server查询不会运行

时间:2016-09-16 11:16:24

标签: sql sql-server networking

我已连接到远程SQL Server实例

这些查询工作正常:

SELECT COUNT(*) FROM Provider  
SELECT TOP 1 * FROM Provider

但这些不是

SELECT * FROM Provider  
SELECT TOP 2 * FROM Provider

并在长时间延迟后返回此错误:

  

Msg 64,Level 20,State 0,Line 0
  从接收结果时发生传输级错误   服务器。 (提供程序:TCP提供程序,错误:0 - 指定的网络名称   已不再可用。)

我应该看哪种配置允许单行结果而不是多行结果?

1 个答案:

答案 0 :(得分:0)

我发现了以下内容 嘿伙伴,另一件事我试着找到以下内容,并为您提供了URL。考虑到第一点故障排除并不适合你

<强>症状 错误的堆栈跟踪类似于以下内容:

A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.)
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParserStateObject.ReadPacket(Int32 bytesExpected)
   at System.Data.SqlClient.TdsParserStateObject.ReadBuffer()
   at System.Data.SqlClient.TdsParserStateObject.ReadByte()

<强>原因 该错误是由长时间运行的查询的超时异常引起的。在以前版本的Visual Studio .NET中,异常被正确表示为具有超时描述的异常。

解决 将命令对象的commandtimeout属性设置为适当的值。使用零值等待而不抛出异常。

取自https://support.microsoft.com/en-us/kb/555938