传递给SQL Server的查询已损坏

我们正在客户现场遇到一个奇怪的错误。 我们已经设法缩小到只能使用Management Studio和SQL Server复制行为的程度。

我们有两台机器,A和B:

 + ------------ + + -------------------- +
 |  [A] |  |  [B] |
 | pipe理|  --------------> |  SQL Server 2008 R2 |
 | 工作室|  | 企业x64 |
 + ------------ + + -------------------- +

我们在计算机A的Management Studio上运行一个SQL脚本,对着计算机B上的SQL Server实例。 我们实际上并没有执行脚本,只是parsing它。

大多数情况下,parsing操作正常。 偶尔(看似随机),parsing操作失败,语法错误。 该错误消息显示了脚本中出现错误的部分,该部分显示为原始脚本中的一些SQL已被截断并附加了随机字符。

一个例子:

原始的SQL:

SELECT DISTINCT ST.TABLE_NAME as TableName FROM INFORMATION_SCHEMA.TABLES AS ST INNER JOIN INFORMATION_SCHEMA.COLUMNS AS SC ON SC.TABLE_NAME = ST.TABLE_NAME WHERE ST.TABLE_TYPE = 'BASE TABLE' AND SC.COLUMN_NAME = 'Identity' AND ST.TABLE_NAME != 'dtproperties' ORDER BY ST.TABLE_NAME 

出错的SQL(由SQL Server报告):

 SELECT DISTINCT ST.TABLE_NAME as TableName FROM INFORMATION_SCHEMA.TABLES AS ST INNER JOIN INFORMATION_SCHEMA.COLUMNS AS SC ON SC.TABLE_NAME = Sā怊 

上面的例子显示了查询是如何被破坏的。 它并不总是会发生,并不总是导致错误的同一个SQL位。 对另一个SQL Server实例parsing此脚本不会产生错误,表明该脚本正常。

看来有些东西正在破坏正在接收服务器的SQL。 这导致我认为问题在于客户端或者从客户端到服务器的SQL传输。 我有一个SQL错误发生期间的SQL跟踪,它显示SQL Server收到SQL时已经损坏

我们一直无法追查这种行为的任何可能的原因,所以不能find解决办法。 由于这些错误是随机发生的,因此生成繁殖步骤以提交错误报告也非常困难。

有任何想法吗?

拔出SQL Server。 时间进行系统检查。 内存(计算器,但也可能是网卡)是罪魁祸首。 我期望看到内存错误出现。