向现有发布添加项目和从中删除项目
更新日期: 2006 年 4 月 14 日
创建发布后,可以添加和删除项目。可以随时添加项目,但删除项目所需的操作取决于复制的类型和删除项目的时间。
添加项目
添加项目涉及的操作有:将项目添加到发布、为发布创建新的快照、同步订阅以应用新项目的架构和数据。
注意: |
---|
如果向合并发布中添加一个项目和一个依赖于此新项目的现有项目,则必须使用 sp_addmergearticle 和 sp_changemergearticle 的 @processing_order 参数指定两个项目的处理顺序。请考虑下列方案:发布表但不发布该表引用的函数。如果不发布该函数,则无法在订阅服务器中创建相应的表。向发布中添加函数时:应为 sp_addmergearticle 的 @processing_order 参数指定值 1;为 sp_changemergearticle 的 @processing_order 参数指定值 2,为参数 @article 指定表名。此处理顺序可确保在创建依赖于某函数的表之前在订阅服务器上创建该函数。每个项目可以使用不同的数字,只要函数的数字小于表的数字即可。 |
- 用以下方法之一添加一个或多个项目:
- Microsoft SQL Server Management Studio: 如何将项目添加到发布中以及从发布中删除项目 (SQL Server Management Studio)
- 复制 Transact-SQL 编程:How to: Define an Article (Replication Transact-SQL Programming)
- 复制管理对象 (RMO) 编程:How to: Define an Article (RMO Programming)
- 将项目添加到发布后,必须为发布(和所有分区,如果发布是带有参数化筛选器的合并发布)创建新的快照。然后,分发代理或合并代理将新项目的架构和数据复制到订阅服务器(并不重新初始化整个发布)。
创建新的快照- SQL Server Management Studio: 如何创建和应用初始快照 (SQL Server Management Studio)
- 复制 Transact-SQL 编程:How to: Create the Initial Snapshot (Replication Transact-SQL Programming)
- RMO 编程:How to: Create the Initial Snapshot (RMO Programming)
为带有参数化筛选器的合并发布创建新的快照 - SQL Server Management Studio: 如何为带有参数化筛选器的合并发布创建快照 (SQL Server Management Studio)
- 复制 Transact-SQL 编程:How to: Create a Snapshot for a Merge Publication with Parameterized Filters (Replication Transact-SQL Programming)
- 创建快照后,同步订阅以复制新项目的架构和数据。
同步推送订阅- SQL Server Management Studio: 如何同步推送订阅 (SQL Server Management Studio)
- 复制 Transact-SQL 编程:如何同步推送订阅(复制编程)
- RMO 编程:如何同步推送订阅(RMO 编程)
同步请求订阅 - SQL Server Management Studio: 如何同步请求订阅 (SQL Server Management Studio)
- 复制 Transact-SQL 编程:如何同步请求订阅(复制编程)
- RMO 编程:如何同步请求订阅(RMO 编程)
删除项目
可以随时从发布中删除项目,但必须考虑以下行为:
- 从发布中删除项目并不会将对象从发布数据库中删除,也不会将相应对象从订阅数据库中删除。必要时,使用 DROP <对象> 删除这些对象。在删除通过外键约束与其他已发布项目相关的项目时,建议手动或使用按需脚本执行在订阅服务器上删除表:指定包含相应 DROP <对象> 语句的脚本。有关详细信息,请参阅How to: Execute Scripts During Synchronization (Replication Transact-SQL Programming)。
- 对于兼容级别为 90RTM 或更高的合并发布,可以随时删除项目,但需要创建一个新的快照。此外:
- 如果项目在联接筛选器或逻辑记录关系中是父项目,就必须先删除关系,这需要重新初始化。
- 如果项目具有发布中的最后一个参数化筛选器,就必须重新初始化订阅。
- 对于兼容级别低于 90RTM 的合并发布,可以在初始同步订阅之前删除项目,而无需特别考虑。如果在同步一个或多个订阅之后删除项目,则必须删除、重新创建和同步订阅。有关兼容级别的详细信息,请参阅主题在复制拓扑中使用 SQL Server 的多个版本中的“合并发布的兼容级别”部分。
- 对于快照发布或事务性发布,可以在创建订阅之前删除项目,而无需特别考虑。如果在创建一个或多个订阅之后删除项目,则必须删除、重新创建和同步订阅。有关删除订阅的详细信息,请参阅订阅发布和 sp_dropsubscription (Transact-SQL)。使用 sp_dropsubscription 可以删除订阅中的单个项目,而不是删除整个订阅。
- 从发布中删除项目涉及的操作有:删除项目并为发布创建新的快照。删除项目会使当前快照失效,因此必须创建新的快照。
从发布中删除项目- SQL Server Management Studio: 如何将项目添加到发布中以及从发布中删除项目 (SQL Server Management Studio)
- 复制 Transact-SQL 编程:How to: Delete an Article (Replication Transact-SQL Programming)
- RMO 编程:How to: Delete an Article (RMO Programming)
- 从发布中删除项目后,必须为发布(和所有分区,如果发布是带有参数化筛选器的合并发布)创建新的快照。
创建新的快照- SQL Server Management Studio: 如何创建和应用初始快照 (SQL Server Management Studio)
- 复制 Transact-SQL 编程:How to: Create the Initial Snapshot (Replication Transact-SQL Programming)
- RMO 编程:How to: Create the Initial Snapshot (RMO Programming)
为带有参数化筛选器的合并发布创建新的快照 - SQL Server Management Studio: 如何为带有参数化筛选器的合并发布创建快照 (SQL Server Management Studio)
- 复制 Transact-SQL 编程:How to: Create a Snapshot for a Merge Publication with Parameterized Filters (Replication Transact-SQL Programming)
如上所述,在某些情况下删除项目需要删除、重新创建及同步订阅。有关详细信息,请参阅订阅发布和同步数据。
请参阅
概念
发布数据和数据库对象
重新初始化订阅
对发布数据库进行架构更改
帮助和信息
更改历史记录
版本 | 历史记录 |
---|---|
2006 年 4 月 14 日 |
|