有没有人对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)。”
有没有人成功让这两个人玩得很好?
答案 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