我不是在寻找有关我的存储过程的实际代码的帮助(但无论如何),但客户端向我发送了他的SQL Server 2000数据库的副本,说明特定的proc返回了错误的结果;我将数据库恢复到我的服务器(SQL Server 2008R2)并运行proc,它产生了正确的结果。请记住,没有可能导致差异的前端 - 在这两种情况下,我只是执行proc thru企业管理器和管理工作室。
我想知道是否有任何已知的差异可能导致/导致此问题?这个特定的proc使用了很多条件逻辑,默认参数,甚至有一个游标来做一些循环逻辑,但任何关于可能的区域的建议都会有所帮助。
编辑:为了澄清,返回的行数和列数是相同的,但对于特定列(对于某些行,取决于数据字段的值),该数字应该是它应该的两倍。 2008给出了“正确”的答案。 '2000'给出了错误的答案,即双倍金额。
答案 0 :(得分:3)
有很多事情可能导致此问题,包括(但不限于)整理和系统设置。如果我们看到SP,我们可能会发现罪魁祸首。除了部署中的更改之外,版本之间存在差异,请参阅
http://msdn.microsoft.com/en-us/library/ms143179(v=sql.100).aspx
和
答案 1 :(得分:2)
订单的视图不会在SQl Server 2008中订购,请参见此处:Create a sorted view in SQL Server 2005 and SQL Server 2008
当你说错误的结果时,你的意思是什么? 如果您将日期作为字符串传递并且您没有使用ISO /安全格式,则SQl服务器安装的语言也可能是因素
也可以是来自客户端数据库的连接的ANSI设置
也许他们有ANSI_NULLS OFF而不是ON