Udostępnij za pośrednictwem


sp_mergearticlecolumn (języka Transact-SQL)

Partycje publikacja seryjnej w pionie.Ta procedura składowana jest wykonywany na Wydawca na bazie publikacja.

Ikona łącza do tematuKonwencje składni Transact-SQL

Składnia

sp_mergearticlecolumn [ @publication = ] 'publication'
        , [ @article = ] 'article'
    [ , [ @column = ] 'column'
    [ , [ @operation = ] 'operation' 
    [ , [ @schema_replication = ] 'schema_replication' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ] 
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ] 

Argumenty

  • [ @ publikacja = 'publication"
    Is the name of the publication.Publication is sysname, with no default.

  • [ @ artykuł = 'article"
    Is the name of the article in the publication.article is sysname, with no default.

  • [ @ kolumna = 'column"
    Identifies the columns on which to create the vertical partition.column is sysname, with a default of NULL.If NULL and @operation = N'add', all columns in the source table are added to the article by default.column cannot be NULL when operation is set to drop.Aby wykluczyć kolumna z artykuł wykonać sp_mergearticlecolumn i określ column i @operation = N'drop' dla każdej kolumna, które mają być usunięte z określonego article.

  • [ @ operacji = 'operation"
    Is the replication status.operation is nvarchar(4), with a default of ADD.add marks the column for replication.drop clears the column.

  • [ @ schema_replication = 'schema_replication"
    Specifies that a schema change will be propagated when the Merge Agent runs.schema_replication is nvarchar(5), with a default of FALSE.

    Ostrzeżenie

    Tylko FALSE jest obsługiwana dla schema_replication.

  • [ @ force_invalidate_snapshot = force_invalidate_snapshot
    Enables or disables the ability to have a snapshot invalidated.force_invalidate_snapshot is a bit, with a default of 0.

    0 określa zmiany artykuł korespondencji seryjnej nie spowoduje migawka się nieprawidłowy.

    1 Określa, że zmiany w korespondencji seryjnej artykuł może spowodować migawki nieprawidłowa, i jeśli to przypadek wartość 1 daje uprawnienie dla Nowa migawka występują.

  • [ **@force_reinit_subscription = ]**force_reinit_subscription
    Enables or disables the ability to have the subscription reinitializated.force_reinit_subscription is a bit with a default of 0.

    0 określa nie spowoduje zmiany artykuł seryjnej subskrypcja do należy ponownie zainicjować.

    1 Określa, że zmiany w korespondencji seryjnej artykuł może spowodować, że należy ponownie zainicjować subskrypcję i jeśli to przypadek wartość 1 daje uprawnienie dla ponownego zainicjowania subskrypcja występuje.

Wartości kodów powrotnych

0 (sukces) lub 1 (błąd)

Uwagi

sp_mergearticlecolumn używane w replikacja scalająca.

kolumna tożsamości Nie można usunąć z artykuł, jeśli tożsamość automatycznego zarządzania zakres jest używany.Aby uzyskać więcej informacji, zobacz Replikowanie kolumny tożsamości.

Jeśli aplikacja ustawia nową partycję pionowe po migawka początkowa jest tworzony, Nowa migawka musi być generowane i przywracane w każdej subskrypcja.migawka są stosowane podczas następnego zaplanowanego migawka i dystrybucji lub uruchomić agenta korespondencji seryjnej.

Jeśli wiersz śledzenia jest używana do wykrywanie konfliktów (domyślnie), tabela bazowa może zawierać maksymalnie 1024 kolumn, ale z artykuł musi być przefiltrowana kolumn tak, aby maksymalnie 246 kolumn jest publikowana.Jeśli śledzenie kolumna tabela bazowa może zawierać maksymalnie 246 kolumn.Aby uzyskać więcej informacji zobacz "Poziom śledzenia" sekcja Jak replikacji scalania wykrywa i usuwa konflikty.

Przykład

DECLARE @publication AS sysname;
DECLARE @table1 AS sysname;
DECLARE @table2 AS sysname;
DECLARE @table3 AS sysname;
DECLARE @salesschema AS sysname;
DECLARE @hrschema AS sysname;
DECLARE @filterclause AS nvarchar(1000);
SET @publication = N'AdvWorksSalesOrdersMerge'; 
SET @table1 = N'Employee'; 
SET @table2 = N'SalesOrderHeader'; 
SET @table3 = N'SalesOrderDetail'; 
SET @salesschema = N'Sales';
SET @hrschema = N'HumanResources';
SET @filterclause = N'Employee.LoginID = HOST_NAME()';

-- Add a filtered article for the Employee table.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table1, 
  @source_object = @table1, 
  @type = N'table', 
  @source_owner = @hrschema,
  @schema_option = 0x0004CF1,
  @description = N'article for the Employee table',
  @subset_filterclause = @filterclause;

-- Add an article for the SalesOrderHeader table that is filtered
-- based on Employee and horizontally filtered.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table2, 
  @source_object = @table2, 
  @type = N'table', 
  @source_owner = @salesschema, 
  @vertical_partition = N'true',
  @schema_option = 0x0034EF1,
  @description = N'article for the SalesOrderDetail table';

-- Add an article for the SalesOrderDetail table that is filtered
-- based on SaledOrderHeader.
EXEC sp_addmergearticle 
  @publication = @publication, 
  @article = @table3, 
  @source_object = @table3, 
  @source_owner = @salesschema,
  @description = 'article for the SalesOrderHeader table', 
  @identityrangemanagementoption = N'auto', 
  @pub_identity_range = 100000, 
  @identity_range = 100, 
  @threshold = 80,
  @schema_option = 0x0004EF1;

-- Add all columns to the SalesOrderHeader article.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Remove the credit card Approval Code column.
EXEC sp_mergearticlecolumn 
  @publication = @publication, 
  @article = @table2, 
  @column = N'CreditCardApprovalCode', 
  @operation = N'drop', 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between Employee and SalesOrderHeader.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table2, 
  @filtername = N'SalesOrderHeader_Employee', 
  @join_articlename = @table1, 
  @join_filterclause = N'Employee.BusinessEntityID = SalesOrderHeader.SalesPersonID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;

-- Add a merge join filter between SalesOrderHeader and SalesOrderDetail.
EXEC sp_addmergefilter 
  @publication = @publication, 
  @article = @table3, 
  @filtername = N'SalesOrderDetail_SalesOrderHeader', 
  @join_articlename = @table2, 
  @join_filterclause = N'SalesOrderHeader.SalesOrderID = SalesOrderDetail.SalesOrderID', 
  @join_unique_key = 1, 
  @filter_type = 1, 
  @force_invalidate_snapshot = 1, 
  @force_reinit_subscription = 1;
GO

Uprawnienia

Tylko członkowie sysadmin stała rola serwera lub db_owner ustaloną rola bazy danych można wykonać sp_mergearticlecolumn.