3

私のアプリケーションでは、更新シナリオをサポートする必要があり、データベースが影響を受ける可能性があります。

中間バージョンをインストールせずに、古いバージョンから最新バージョンに更新できるようにしたい。たとえば、バージョンA(最も古い)、B(中間)、およびC(新しいバージョン)があるとします。バージョンAをバージョンCに直接更新できるようにしたい。これは単純なアプリケーションファイルの場合、古いものを新しいものに置き換えるだけです。ただし、データベースの場合、データベーススキーマをAからCに直接変更するSQLスクリプトを生成するのではなく、最初にスクリプトを適用してスキーマをAからBに、BからCに変更します。

SQL Serverデータベースのデータベースバージョンを保存するにはどうすればよいですか?バージョンテーブルを実装する代わりに、設定できる特別なプロパティはありますか?私のコード(.NET)では、データベースバージョンを読み取り、それに応じて更新SQLスクリプトを適切な順序で実行したいと考えています。

SQLServer2005とSQLServer2008の両方を使用します。

4

5 に答える 5

7

私はデータベース拡張プロパティを使用しています。バージョン管理とデータベースを参照してください

SELECT [value] 
    from ::fn_listextendedproperty (
        'MyApplication DB Version', 
        default, default, default, default, default, default);

..。

EXEC sp_updateextendedproperty 
    @name = N'MyApplication DB Version', @value = '1.2';
GO
于 2009-12-02T16:34:07.230 に答える
3

バージョンテーブルを貼り付けてください。シンプルで効果的です。過去には、えーと、10年以上もの間、私にとってはおもてなしをしてきました。

私はここで別の質問に答えてこれを書きました

于 2009-12-02T15:49:21.357 に答える
2

これは、使用しているSQLServerのバージョンによって異なります。

データベースバージョンがデータベースの組み込みプロパティであるとは思いませんが、おそらく拡張プロパティを使用できます。

個人的には、独自のバージョンテーブルを作成します。これにより、より多くのメタデータを関連付けることができるようになります。

于 2009-12-02T15:44:15.487 に答える
0

現在のバージョンを登録するテーブルを追加できます。次に、すべてのアップグレードスクリプトを実行しますが、現在のバージョンがスクリプトで期待されるバージョンよりも高い場合にスクリプトが実行されないようにスクリプトを作成する必要があります。

このように、データベーススキーマの現在のバージョンが何であるかは関係ありません。スクリプトは、スキーマにまだ加えられていない変更のみを行います。

ここでは、アップグレードスクリプトを作成する手間を大幅に削減するいくつかのストアドプロシージャを見つけることができます。SQLServerデータベーススキーマバージョンを維持する方法

于 2013-10-24T11:18:20.463 に答える
0

私はSQLスキーマの移行にプレーンSQLクエリを使用することを好みます。最初はEFコードのファンではありませんが、データベースのバージョン管理がない場合は簡単ではありません。.netを使用する場合は、無料のNuGetパッケージがあります。データベースのバージョンを管理し、プレーンSQLクエリで動作します。

https://www.nuget.org/packages/SQLMigrationByQuery

于 2020-08-20T20:16:21.173 に答える