有没有人能给出明确的答案 SQL Server 管理对象 与Sql Server 7.0兼容吗?文档指出:

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

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

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

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

有帮助吗?

解决方案

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

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

显然这是相互冲突的信息...我假设如果您的数据库的兼容性级别是 70,您将无法连接。

要检查运行:执行 sp_dbcmptlevel '数据库名称'

通过这个链接查看, ,看来您可以通过运行以下命令来更改兼容性级别:

执行 sp_dbcmptlevel '数据库名称', 80

显然在更改任何内容之前先进行备份。

其他提示

看起来文档是错误的(并且在过去 3 年多的时间里一直是错误的!)。我发现这个片段 反射器Microsoft.SqlServer.Management.Common.ConnectionManager, Microsoft.SqlServer.ConnectionInfo

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 程序集。

真糟糕 - 猜猜它又回来了 SQL-DMO 对于这个项目。

只是为了跟进您的评论,SQL 2008 确实有自己的 SMO 包,支持 SQL 2000、2005 和 2008,这实际上在其下载页面上有明确记录!你是对的,你无法将 SQL 2005 SMO 连接到 SQL 2008。

SMO 版本 10 中有一些不错的更新,如果您访问所连接的 SQL 版本上不存在的属性,您会收到一个明显的“此属性在此版本的 SQL 上不可用”异常,或者大意如此的话。

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

抱歉回复晚了...有 部分支持 对于 SQL 2000 和 SQL 7

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top