0

ms sql データベースにバージョン管理を追加しようとしています。現在、データベースは 400 を超えるブランチに展開されており、顧客は段階的なロールアウトを主張しているため、どのブランチにどのデータベース修正があるかを管理することが非常に困難になっています。

データベース内のすべてのストアド プロシージャに release_version 拡張プロパティを追加し、それを使用して管理を支援することを提案しました。Web をスキャンした後、次のスクリプトを思いつきましたが、正しく動作していないようです。スクリプトを正しくするのを手伝ってくれる人はいますか?

SELECT 'EXEC sys.sp_addextendedproperty
       @name = N''Release_Version'', 
       @value = N''1.0.0'',
       @level0type = N''SCHEMA'', 
       @level0name = [' + ROUTINE_SCHEMA + '],
       @level1type = N''PROCEDURE'', 
       @level1name = [' + ROUTINE_NAME + '];'
 FROM information_schema.routines where ROUTINE_TYPE = 'PROCEDURE' ORDER BY ROUTINE_NAME

これを実行すると、正しい実行ステートメントの結果セットが得られますが、実際にそれらを実行するにはどうすればよいですか?

EXEC sys.sp_addextendedproperty            @name = N'Release_Version', @value = N'1.0.0',            @level0type = N'SCHEMA', @level0name = [dbo],            @level1type = N'PROCEDURE', @level1name = [sp_AlterTicketHistoryTable];
EXEC sys.sp_addextendedproperty            @name = N'Release_Version', @value = N'1.0.0',            @level0type = N'SCHEMA', @level0name = [dbo],            @level1type = N'PROCEDURE', @level1name = [sp_AlterTicketTransTable];
EXEC sys.sp_addextendedproperty            @name = N'Release_Version', @value = N'1.0.0',            @level0type = N'SCHEMA', @level0name = [dbo],            @level1type = N'PROCEDURE', @level1name = [sp_BackupAcknowledgementHistory];
...

[注]: 私の間違い ... ステートメントが自動的に実行されるという印象を受けました。代わりに、ループして具体的に実行する必要があります。

4

0 に答える 0