sql-server-2008 – 传递给SQL Server的查询已损坏
我们在客户站点的应用程序遇到了一个奇怪的错误.我们已经设法将其缩小到只使用Management Studio和SQL 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.是时候进行系统检查了.内存(计算器,但也可能是网卡)是罪魁祸首.我希望看到内存错误出现.(编辑:上饶站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |