sql-server-2008 – 传递给SQL Server的查询已损坏

我们在客户站点的应用程序遇到了一个奇怪的错误.我们已经设法将其缩小到只使用Management Studiosql Server来复制行为的程度.

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

+------------+                   +--------------------+
|    [A]     |                   |        [B]         |
| Management |  -------------->  | sql Server 2008 R2 |
|   Studio   |                   |   Enterprise x64   |
+------------+                   +--------------------+

我们在机器A上的Management Studio中针对机器B上的sql Server实例运行sql脚本.我们实际上并不是在执行脚本,只是解析它.

大多数情况下,解析操作正常.偶尔(看似随机),解析操作失败并出现语法错误.错误消息显示脚本中包含错误的部分,该错误显示为原始脚本中的某些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实例不会产生任何错误,表明该脚本正常.

看来有些东西正在破坏正在接收服务器的sql.这使我认为问题在于客户端或从客户端到服务器的sql传输.我从发生错误的时间段开始有一个sql跟踪,这表明sql在收到sql时已经损坏了.

我们无法找到此行为的任何可能原因,因此无法找到修复程序.因为错误看似随机发生,所以很难生成提交错误报告的复制步骤.

有任何想法吗?

解决方法

拉出sql Server.是时候进行系统检查了.内存(计算器,但也可能是网卡)是罪魁祸首.我希望看到内存错误出现.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...