SMO和Sql Server 7.0

时间:2008-08-28 21:36:44

标签: sql-server smo

有没有人对Sql Server Management Objects是否与Sql Server 7.0兼容有明确的答案? 文档声明:

  

由于SMO与SQL Server 7.0版,SQL Server 2000,SQL Server 2005和SQL Server 2008兼容,因此您可以轻松管理多版本环境。

但是尝试连接到Sql 7实例会让我:

  

“不支持此SQL Server版本(7.0)。”

有没有人成功让这两个人玩得很好?

4 个答案:

答案 0 :(得分:2)

您可以使用SMO连接到SQL Server版本7,2000和2005,但SMO不支持设置为兼容级别60,65和70的数据库。

对于SQL Server 7.0,兼容级别为70

显然这是相互矛盾的信息......我假设如果您的数据库的兼容级别为70,则无法连接。

检查运行:EXEC sp_dbcmptlevel' databasename '

Looking through this link,您似乎可以通过运行以下内容来更改兼容级别:

EXEC sp_dbcmptlevel' databasename ',80

在改变任何事情之前显然需要备份。

答案 1 :(得分:1)

看起来这些文档是错误的(并且在过去的3年多时间里仍然存在错误!)。我在Reflector,Microsoft.SqlServer.ConnectionInfo

中找到了Microsoft.SqlServer.Management.Common.ConnectionManager的代码段
protected void CheckServerVersion(ServerVersion version) {
    if ((version.Major <= 7 || (version.Major > 9)) {
       throw new ConnectionFailureException(
          StringConnectionInfo.ConnectToInvalidVersion(version.ToString())
       );
    }
}

因此,看起来只支持SQL 2000和SQL 2005。据推测,SQL 2008(版本10)已更新SMO程序集。

Bummer - 猜测这个项目会回到SQL-DMO

答案 2 :(得分:1)

只是为了跟进你的提交SQL 2008确实有自己的SMO软件包,它支持SQL 2000,2005和2008,它们实际上已经在他们的下载页面上明确记录了!你是对的,你无法将SQL 2005 SMO连接到SQL 2008。

在SMO的第10版中有一些不错的更新更新,如果您访问在您连接的SQL版本上不存在的属性,则会得到一个合理的“此属性在此版本的SQL上不可用“这种例外或言论。

Microsoft SQL Server 2008管理对象 SQL Server管理对象(SMO)是一种.NET Framework对象模型,它使软件开发人员能够创建客户端应用程序来管理和管理SQL Server对象和服务。此对象模型适用于SQL Server 2000,SQL Server 2005和SQL Server 2008。

答案 3 :(得分:0)

对于迟到的回答感到抱歉... SQL 2000和SQL 7有partial support