我正在为 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
有谁知道这是否可能?如果可能的话,我应该用什么方法来完成这个?