基本的にデータベースから現在のバージョン番号を取得し、バージョンが有効な場合は多数のストアド プロシージャを作成する db update スクリプトを作成しています。現在のバージョンが予想されるバージョンと一致しない場合は、コードの実行をスキップする必要があります。
ただし、CREATE PROCEDURE はバッチの最初のステートメントである必要があるため、スクリプトを作成するときに問題が発生します。そのため、create プロシージャ ステートメントの前に if .. else ステートメントを挿入することはできません。
GOTO も使用してみましたが、GOTO は複数のバッチにまたがらないため、役に立ちませんでした。同じことが RETURN と RAISEERROR にも当てはまります - 残りのコードは引き続き実行されます。
サンプル スクリプト:
IF @Version = '1.0' --doesn't work
BEGIN
CREATE PROCEDURE dbo.uspCreateAccount
AS BEGIN
--The rest of the code goes here
END
END
誰でもこれについて洞察を提供できますか?