您是否曾经遇到过 SQL Server 2008 返回与 SQL Server 2000 不同的结果集的情况?

发布于 2024-11-03 10:18:27 字数 394 浏览 0 评论 0原文

我并不是在寻求有关我的存储过程的实际代码的帮助(无论如何),但是一位客户向我发送了他的 SQL Server 2000 数据库的副本,指出某个特定的过程返回了错误的结果;我将数据库恢复到我的服务器(SQL Server 2008R2)并运行该过程,它产生了正确的结果。请记住,没有任何前端可能会导致差异 - 在这两种情况下,我只是通过企业管理器和管理工作室执行过程。

我想知道是否有任何已知的差异可能会导致/导致此问题?这个特定的过程使用了大量的条件逻辑、默认参数,甚至有一个光标来执行一些循环逻辑,但任何有关可能需要查看的区域的建议都会有所帮助。

编辑:为了澄清,返回的行数和列数是相同的,但对于特定列(对于某些行,取决于数据字段的值),该数字恰好是应有的两倍。 2008年给出了“正确”答案。 “2000”给出了错误的答案,即双倍的金额。

I am not looking for help with the actual code of my stored procedure (yet anyway), but a client sent me a copy of his SQL Server 2000 database stating that a particular proc was returning incorrect results; I restored the database to my server (SQL Server 2008R2) and ran the proc and it produced the correct results. Keep in mind there is no front-end that could be causing the difference - in both the cases I simply execute the proc thru enterprise manager and management studio.

I am wondering if there are any known differences that might contribute/cause this problem? This particular proc uses a lot of conditional logic, default parameters and even has a cursor to do some looping logic, but any suggestions on possible areas to look at would be helpful.

Edit: to clarify, the number of rows and columns returned are the same, but for a particular column (for certain rows depending on value of a data field), the number is exactly double what it should be. 2008 gives the 'correct' answer. '2000' gives the wrong answer, i.e. the double amount.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

倾城花音 2024-11-10 10:18:27

有很多因素可能导致此问题,包括(但不限于)排序规则和系统设置。如果我们看到 SP,我们也许就能找出罪魁祸首。除了部署方面的更改之外,版本之间还存在差异,请参阅

http://msdn.microsoft.com/en-us/library/ms143179(v=sql.100).aspx

http://msdn.microsoft.com/en-us/library/ms143179.aspx

There are so many things that could cause this problem including (but not limited to) collation and system settings. If we saw the SP we might be able to spot the culprit. In addition to changes in deployments there are differences between versions see

http://msdn.microsoft.com/en-us/library/ms143179(v=sql.100).aspx

and

http://msdn.microsoft.com/en-us/library/ms143179.aspx

无声静候 2024-11-10 10:18:27

具有 order by 的视图不会在 SQl Server 2008 中排序,请参见此处:在 SQL Server 2005 和 SQL Server 2008 中创建排序视图

当您说结果不正确时,您会怎么做 意思是?
如果您将日期作为字符串传递并且不使用 ISO/安全格式,则 SQl Server 安装的语言也可能是一个因素

也可能是来自客户端数据库连接的 ANSI 设置,

也许它们的 ANSI_NULLS 为 OFF 而不是 ON

Views with order by won't be ordered in SQl Server 2008, see here: Create a sorted view in SQL Server 2005 and SQL Server 2008

When you say incorrect results, what do you mean?
The Language of the SQl Server installation can also be factor if you pass in dates as strings and you are not using ISO/safe formats

Could also be the ANSI settings from the connection coming in at your client's DB

perhaps they have ANSI_NULLS OFF instead of ON

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文