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) はサポートされていません。」

これらの 2 つをうまくプレイさせることに成功した人はいますか?

4

4 に答える 4

2

SMOを使用してSQLServerバージョン7、2000、および2005に接続できますが、SMOは、互換性レベル60、65、および70に設定されたデータベースをサポートしていません。

SQL Server 7.0の場合、互換性レベルは70です。

明らかにこれは矛盾する情報です...DBの互換性レベルが70の場合、接続できないと思います。

実行を確認するには:EXEC sp_dbcmptlevel'databasename '

このリンクを見ると、これを実行することで互換性レベルを変更できる可能性があります。

EXEC sp_dbcmptlevel'データベース名'、80

明らかに、何かを変更する前にバックアップを作成してください。

于 2008-08-29T01:13:36.000 に答える
1

SQL 2008 には、SQL 2000、2005、および 2008 をサポートする独自の SMO パッケージがあり、実際にはダウンロード ページに明確に記載されています。確かに、SQL 2005 SMO を SQL 2008 に接続することはできません。

SMO のバージョン 10 には、接続している SQL のバージョンに存在しないプロパティにアクセスすると、適切な「このプロパティは、このバージョンの SQL では使用できません」という例外が発生するという点で、いくつかの優れた更新プログラムがあります。その趣旨の言葉。

Microsoft SQL Server 2008 管理オブジェクト SQL Server 管理オブジェクト (SMO) は、ソフトウェア開発者がクライアント側アプリケーションを作成して SQL Server オブジェクトとサービスを管理できるようにする .NET Framework オブジェクト モデルです。このオブジェクト モデルは、SQL Server 2000、SQL Server 2005、および SQL Server 2008 で動作します。

于 2009-05-18T14:22:18.570 に答える
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 アセンブリを更新しました。

残念なことに、このプロジェクトではSQL-DMOに戻ったと思います。

于 2008-08-29T19:35:04.123 に答える
0

回答が遅くなり申し訳ありません... SQL 2000 および SQL 7は部分的にサポートされています。

于 2009-01-06T04:56:48.297 に答える