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