質問
誰かが明確な答えを持っていますか? 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) はサポートされていません。」
この2人をうまくプレイさせることに成功した人はいますか?
解決
SMO を使用して SQL Server バージョン 7、2000、および 2005 に接続できますが、SMO は互換性レベル 60、65、および 70 に設定されたデータベースをサポートしません。
SQL Server 7.0 の場合、互換性レベルは 70 です。
明らかにこれは矛盾した情報です...DB の互換性レベルが 70 の場合は接続できないと思います。
実行を確認するには:EXEC sp_dbcmptlevel 'データベース名'
このリンクを通して見ると, 、これを実行すると互換性レベルを変更できるようです。
EXEC 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 には SQL 2000、2005、2008 をサポートする独自の SMO パッケージがあり、実際にはダウンロード ページに明確に文書化されています。SQL 2005 SMO を SQL 2008 に接続できないのは正しいことです。
SMO のバージョン 10 にはいくつかの優れた更新があり、接続している SQL のバージョンに存在しないプロパティにアクセスすると、「このプロパティはこのバージョンの SQL では使用できません」という適切な例外が発生するか、そういう趣旨の言葉。
Microsoft SQL Server 2008管理オブジェクトSQL Server Management Objects(SMO)は、ソフトウェア開発者がSQL Serverオブジェクトとサービスを管理および管理するためのクライアント側アプリケーションを作成できるようにする.NETフレームワークオブジェクトモデルです。このオブジェクト モデルは、SQL Server 2000、SQL Server 2005、および SQL Server 2008 で動作します。
返事遅れてすみません...がある 部分的なサポート SQL 2000 および SQL 7 の場合