0

それで、物事を説明するための私たちのシステムの少しの背景。

私たちのデータベースはバージョンです(おそらくほとんどがそうです)。データベースに「DBVersion」というテーブルがあります。ただし、数か月前にliquibaseに移行しました。そして今、DATABASECHANGELOGテーブルがあります。

残念ながら、私たちはデータベースに関してはかなり組織化されていない会社です。そのため、クライアントのバージョンを知ることができるビューを作成しようとしています。

正直なところ、どこから始めればいいのかさえわかりません。しかし、これを可能にする複数のCASEステートメントを記述できると思いました。SPsp_msforeachdbを使用してビューを実行します。

SELECT 
Case when id = '8.12' then '8.12'
End as Version
From DATABASECHANGELOG
Where id = '8.12'

私はこのようなことをしたいと思います:

CASE 
    WHEN (SELECT ID FROM DATABASECHANGELOG WHERE ID = '8.12' IF NULL CONTINUE)
    WHEN (SELECT VERSION FROM DBVERSION, IF > 400 && < 425 THEN PRINT 'VERSION 8.7'

上記のクエリはSQLでもないことは知っていますが、それはあなたにアイデアを与えます。Liquibaseを使用したバージョンは、8.10、8.11、8.12に加えて、将来のすべてのバージョンです。8.10未満のすべては、単純な数値範囲となるwatsonバージョンを使用しています。

これがあまりにも混乱している場合は申し訳ありません。

4

1 に答える 1

0

あなたの質問を本当に理解しないでください。

次のSQLは、アプリケーションのデータベースバージョンを表示します。

SELECT ID,FILENAME,TAG  FROM DATABASECHANGELOG WHERE TAG IS NOT NULL

「tag」コマンドを実行するたびに、タグ列に値が挿入されるため、ロールバック操作では、元に戻す変更セットの数がわかります。

于 2012-12-04T22:03:06.057 に答える