Sql server 如何伪造旧版SQL Server以支持旧版应用程序代码

Sql server 如何伪造旧版SQL Server以支持旧版应用程序代码,sql-server,foxpro,Sql Server,Foxpro,我有一个遗留应用程序,它检查SQL Server的版本是6.5、7还是2000。如果不支持,则返回数据库不支持错误。我希望此应用程序使用SQL Server 2008上的数据库。是否有办法伪造版本,以便通过应用程序对SQL Server版本的检查。我的遗留应用程序代码是FoxPro。我没有办法重新编译FoxPro应用程序。您是否尝试过80(即SQL Server 2000): SQL Server数据库的版本可以是以下版本之一: 60=SQL Server 6.0 65=SQL Server

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

您是否尝试过80(即SQL Server 2000):

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

设置数据库的兼容性级别应该可以正常工作。您可以使用应用程序执行此操作。应用程序通常通过检查或来验证当前服务器版本。两者都不可能被推翻或伪造


不显式检查版本的应用程序可以在兼容级别较低的数据库中运行。但是,如果应用程序的代码明确检查了上述其中一项,您将无能为力。

不建议这样做。。。你知道为了确定数据库版本它在检查什么吗?不知道。似乎不起作用。代码似乎在查找服务器设置,而不是数据库兼容级别。该死的代码在FoxPro中。我必须用另一个问题来回答你的问题-这种情况到底是怎么回事?是不是因为没有编译的方法(如果源代码可用)?或者是因为被锁定在一个已有10年历史的数据库中(如果您支持的另一个应用程序仅在2005+上运行,这可能会迫使您设置一个全新的服务器)?还是你只是想就语言问题进行愚蠢的争论?
EXEC sp_dbcmptlevel AdventureWorks, 80;