マージ パブリケーションを作成するために多数のストアド プロシージャを呼び出す Microsoft SQL Server 2008 R2 用の SQL クエリ ファイルを作成中です。ベースライン スクリプトは、Microsoft SQL Server Management Studio の新しいパブリケーション ウィザードを使用して生成されました。
私が直面している「問題」は、sp_addmergearticle
ストアド プロシージャを使用してマージ アーティクルを作成するときに、パブリケーション名、ソース オーナー、デスティネーション オーナーなど、すべてのマージ アーティクルに共通するいくつかのパラメーターを定義する必要があることです。
質問: 名前付きパラメーターのコレクションをグループ化し、それらを共通の方法で提供して、これらのパラメーターへの変更をより簡単に管理する方法はありますか?
たとえば、次のクエリ スニペットを考えてみましょう。
use [MyDatabase]
exec sp_addmergearticle @publication=N'MyPub',
@article=N'MyTable#1',
@source_object=N'MyTable#1',
@source_owner=N'TheOwner',
@destination_owner=N'TheOwner',
@allow_interactive_resolver=N'true'
exec sp_addmergearticle @publication=N'MyPub',
@article=N'MyTable#2',
@source_object=N'MyTable#2',
@source_owner=N'TheOwner',
@destination_owner=N'TheOwner',
@allow_interactive_resolver=N'true'
etc...
GO
ここで、このスクリプトを読みやすく維持しやすくして、sp_addmergearticle
呼び出しがすべての呼び出しに共通の一連のパラメーターと、呼び出し固有の特定のパラメーターを受け取るようにします。
たとえば、次のようにします。
use [MyDatabase]
-- Common parameters for all merge articles
DECLARE @common_parameters
-- @publication=N'MyPub'
-- @source_owner=N'TheOwner',
-- @destination_owner=N'TheOwner',
-- @allow_interactive_resolver=N'true'
exec sp_addmergearticle @common_parameters,
@article=N'MyTable#1',
@source_object=N'MyTable#1',
exec sp_addmergearticle @common_parameters,
@article=N'MyTable#2',
@source_object=N'MyTable#2',
etc...
GO
これが可能かどうか誰にもわかりますか?可能であれば、これを達成するためにどのような手段を使用する必要がありますか?