SQL Server r2后向兼容性msi VS下载sql server 2005后向兼容性msi有什么区别吗?

时间:2011-07-09 09:51:11

标签: sql-server-2008 installation backwards-compatibility

我刚安装sql server 2008 r2并选择了选项以安装向后兼容性(添加删除程序显示安装了向后兼容性) 然后我运行我的sql脚本来升级旧数据库,但它抛出异常,如“查询使用非ANSI外连接”(参见图像确切错误)。 (SQL分析器说:SQLDMO_1抛出错误)。

enter image description here

但是当我明确安装SQLServer向后兼容性(从站点下载的SQLServer2005_BC.msi)并进行相同的升级时,它的工作成功。

我不知道为什么会这样?

我比较了两个SQLDMO.DLL(Sql servere安装一个和SQL server一个),但两者似乎都很好。 有没有人得到同样的问题或任何建议?

更新: 不,它不是与安装向后兼容性相关的问题。最近发生了同样的错误,我认为它可以通过安装bakward兼容的msi来解决,但它没有解决。

原因仍然悬而未决。

2 个答案:

答案 0 :(得分:1)

我认为您所获得的错误与Backward Compatibility组件无关;当你运行查询的数据库被设置为80 vs 90或100的兼容模式时,听起来更像是一个问题,正如错误所暗示的那样,如果设置为80而不是90或100,则运行的查询将起作用;如果你重新安装了sql,那么所有的数据库都会被设置为100;如果你进行了升级,它们将保留在旧版本中,如果它是从SQL 2000升级的话,那么它将保留80.

答案 1 :(得分:1)

SQL Server 2008+不支持旧式ANSI 89连接,即*==*。在升级到SQL Server 2008或更高版本之前,需要使用左外连接和右外连接替换这些连接。任何包含这些代码的代码都不能在没有引发错误的情况下进行编译。

SQL Server 2005是支持旧样式连接的最高版本。

兼容模式80/90/100主要用于旧数据库使用新关键字的情况。这将导致语法错误,通过降低兼容性模式从解析器中删除新功能/保留关键字,这允许有时间从数据库中删除它们。