0

是否有人对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

4 回答 4

2

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

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

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

检查运行:EXEC sp_dbcmptlevel ' databasename '

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

EXEC sp_dbcmptlevel '数据库名', 80

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

于 2008-08-29T01:13:36.000 回答
1

看起来文档是错误的(并且在过去 3 年多的时间里一直是错误的!)。我在Microsoft.SqlServer.Management.Common.ConnectionManager, Microsoft.SqlServer.ConnectionInfo中找到了这个带有Reflector的片段

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

于 2008-08-29T19:35:04.123 回答
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。

于 2009-05-18T14:22:18.570 回答
0

很抱歉回答迟了...对 SQL 2000 和 SQL 7有部分支持

于 2009-01-06T04:56:48.297 回答