如何伪造旧版本的SQL Server以支持遗留应用程序代码

时间:2010-06-28 19:43:08

标签: sql-server foxpro

我有遗留应用程序,检查SQL Server的版本是否为6.5,7或2000.如果没有,则返回不支持的数据库错误。我希望这个应用程序在SQL Server 2008上使用数据库。有没有办法伪造版本,以便应用程序检查SQL Server版本通过。我的遗留应用程序代码是FoxPro。我没有办法重新编译FoxPro应用程序。

3 个答案:

答案 0 :(得分:6)

您是否尝试过setting the compatibility level到80(这意味着SQL Server 2000):

EXEC sp_dbcmptlevel AdventureWorks, 80;

SQL Server数据库的版本可以是以下之一:

  • 60 = SQL Server 6.0
  • 65 = SQL Server 6.5
  • 70 = SQL Server 7.0
  • 80 = SQL Server 2000
  • 90 = SQL Server 2005

答案 1 :(得分:3)

应用程序通常会通过选中@@VERSIONSERVERPROPERTY('ProductVersion')来验证当前的服务器版本。两者都不可能覆盖或伪造。

明确检查版本的应用程序可以在兼容级别较低的数据库中运行。但是,如果应用程序具有明确检查上述之一的代码,那么您无能为力。

答案 2 :(得分:2)

设置数据库的兼容级别应该可以正常工作。您可以使用sp_dbcmptlevel

执行此操作