如何:檢視和修改發行集屬性 (複寫 Transact-SQL 程式設計)
您可以使用複寫預存程序來以程式設計的方式修改發行集及傳回其屬性。您使用的預存程序將根據發行集的類型而定。
檢視快照式或交易式發行集的屬性
- 執行 sp_helppublication,針對 @publication 參數指定發行集的名稱。如果您不指定這個參數,就會傳回發行者上與所有發行集有關的資訊。
變更快照式或交易式發行集的屬性
執行 sp_changepublication,在 @property 參數中指定要變更的發行集屬性,並在 @value 參數中指定這個屬性的新值。
[!附註]
如果此變更將需要產生新的快照集,您也必須針對 @force_invalidate_snapshot 指定 1 的值,而如果此變更將需要重新初始化訂閱者,您就必須針對 @force_reinit_subscription 指定 1 的值。如需有關當屬性變更時需要新的快照集或重新初始化的詳細資訊,請參閱<變更發行集與發行項屬性>。
檢視合併式發行集的屬性
- 執行 sp_helpmergepublication,針對 @publication 參數指定發行集的名稱。如果您不指定這個參數,就會傳回發行者上與所有發行集有關的資訊。
變更合併式發行集的屬性
執行 sp_changemergepublication,在 @property 參數中指定變更的發行集屬性,並在 @value 參數中指定這個屬性的新值。
[!附註]
如果此變更將需要產生新的快照集,您也必須針對 @force_invalidate_snapshot 指定 1 的值,而如果此變更將需要重新初始化訂閱者,您就必須針對 @force_reinit_subscription 指定 1 的值。如需有關當屬性變更時需要新的快照集或重新初始化的詳細資訊,請參閱<變更發行集與發行項屬性>。
檢視快照集的屬性
- 執行 sp_helppublication_snapshot,針對 @publication 參數指定發行集的名稱。
變更快照集的屬性
- 執行 sp_changepublication_snapshot,針對適當的快照集參數指定一或多個新的快照集屬性。
範例
這個交易式複寫範例會傳回發行集的屬性。
DECLARE @myTranPub AS sysname
SET @myTranPub = N'AdvWorksProductTran'
USE [AdventureWorks2008R2]
EXEC sp_helppublication @publication = @myTranPub
GO
這個交易式複寫範例會停用發行集的結構描述複寫。
DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran'
-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks2008R2]
EXEC sp_changepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0
GO
這個合併式複寫範例會傳回發行集的屬性。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
USE [AdventureWorks2008R2]
EXEC sp_helpmergepublication @publication = @publication;
GO
這個合併式複寫範例會停用發行集的結構描述複寫。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2008R2]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO