sp_addmergearticle (Transact-SQL)sp_addmergearticle (Transact-SQL)

SI APPLICA A: SìSQL Server SìDatabase SQL di Azure (solo Istanza gestita) NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database (Managed Instance only) NoAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

Aggiunge un articolo a una pubblicazione di tipo merge esistente.Adds an article to an existing merge publication. Questa stored procedure viene eseguita nel database di pubblicazione del server di pubblicazione.This stored procedure is executed at the Publisher on the publication database.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

  
sp_addmergearticle [ @publication = ] 'publication'   
        , [ @article = ] 'article'   
        , [ @source_object = ] 'source_object'   
    [ , [ @type = ] 'type' ]   
    [ , [ @description = ] 'description' ]   
    [ , [ @column_tracking = ] 'column_tracking' ]   
    [ , [ @status = ] 'status' ]   
    [ , [ @pre_creation_cmd = ] 'pre_creation_cmd' ]   
    [ , [ @creation_script = ] 'creation_script' ]   
    [ , [ @schema_option = ] schema_option ]   
    [ , [ @subset_filterclause = ] 'subset_filterclause' ]   
    [ , [ @article_resolver = ] 'article_resolver' ]   
    [ , [ @resolver_info = ] 'resolver_info' ]   
    [ , [ @source_owner = ] 'source_owner' ]   
    [ , [ @destination_owner = ] 'destination_owner' ]   
    [ , [ @vertical_partition = ] 'vertical_partition' ]   
    [ , [ @auto_identity_range = ] 'auto_identity_range' ]   
    [ , [ @pub_identity_range = ] pub_identity_range ]   
    [ , [ @identity_range = ] identity_range ]   
    [ , [ @threshold = ] threshold ]   
    [ , [ @verify_resolver_signature = ] verify_resolver_signature ]   
    [ , [ @destination_object = ] 'destination_object' ]   
    [ , [ @allow_interactive_resolver = ] 'allow_interactive_resolver' ]   
    [ , [ @fast_multicol_updateproc = ] 'fast_multicol_updateproc' ]   
    [ , [ @check_permissions = ] check_permissions ]   
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]  
    [ , [ @published_in_tran_pub = ] 'published_in_tran_pub' ]  
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]  
    [ , [ @logical_record_level_conflict_detection = ] 'logical_record_level_conflict_detection' ]  
    [ , [ @logical_record_level_conflict_resolution = ] 'logical_record_level_conflict_resolution' ]  
    [ , [ @partition_options = ] partition_options ]  
    [ , [ @processing_order = ] processing_order ]  
    [ , [ @subscriber_upload_options = ] subscriber_upload_options ]  
    [ , [ @identityrangemanagementoption = ] 'identityrangemanagementoption' ]  
    [ , [ @delete_tracking = ] delete_tracking ]  
    [ , [ @compensate_for_errors = ] 'compensate_for_errors' ]   
    [ , [ @stream_blob_columns = ] 'stream_blob_columns' ]  

ArgomentiArguments

[ @publication = ] 'publication'Nome della pubblicazione contenente l'articolo.[ @publication = ] 'publication' Is the name of the publication that contains the article. Publication è di tipo sysnamee non prevede alcun valore predefinito.publication is sysname, with no default.

[ @article = ] 'article'Nome dell'articolo.[ @article = ] 'article' Is the name of the article. Deve essere un nome univoco all'interno della pubblicazione.The name must be unique within the publication. article è di tipo sysnamee non prevede alcun valore predefinito.article is sysname, with no default. l' articolo deve trovarsi nel computer locale che esegue MicrosoftMicrosoft SQL ServerSQL Server e deve essere conforme alle regole per gli identificatori.article must be on the local computer running MicrosoftMicrosoft SQL ServerSQL Server, and must conform to the rules for identifiers.

[ @source_object = ] 'source_object'Oggetto di database da pubblicare.[ @source_object = ] 'source_object' Is the database object to be published. source_object è di tipo sysnamee non prevede alcun valore predefinito.source_object is sysname, with no default. Per ulteriori informazioni sui tipi di oggetti che possono essere pubblicati utilizzando la replica di tipo merge, vedere pubblicare dati e oggetti di database.For more information about the types of objects that can be published using merge replication, see Publish Data and Database Objects.

[ @type = ] 'type'Tipo di articolo.[ @type = ] 'type' Is the type of article. Type è di tipo sysnamee il valore predefinito è Table. i possibili valori sono i seguenti.type is sysname, with a default of table, and can be one of the following values.

ValoreValue DescrizioneDescription
Table (impostazione predefinita)table (default) Tabella con schema e dati.Table with schema and data. La tabella viene monitorata per determinare i dati da replicare.Replication monitors the table to determine data to be replicated.
func schema onlyfunc schema only Funzione con solo schema.Function with schema only.
solo schema della vista indicizzataindexed view schema only Vista indicizzata con solo schema.Indexed view with schema only.
proc schema onlyproc schema only Stored procedure con solo schema.Stored procedure with schema only.
solo schema sinonimosynonym schema only Sinonimo con solo schema.Synonym with schema only.
view schema onlyview schema only Vista con solo schema.View with schema only.

[ @description = ] 'description'Descrizione dell'articolo.[ @description = ] 'description' Is a description of the article. Description è di tipo nvarchar (255) e il valore predefinito è null.description is nvarchar(255), with a default of NULL.

[ @column_tracking = ] 'column_tracking'Impostazione per il rilevamento a livello di colonna.[ @column_tracking = ] 'column_tracking' Is the setting for column-level tracking. column_tracking è di tipo nvarchar (10) e il valore predefinito è false.column_tracking is nvarchar(10), with a default of FALSE. trueattiva il rilevamento della colonna.trueturns on column tracking. false disattiva il rilevamento a livello di colonna e lascia il rilevamento dei conflitti a livello di riga.false turns off column tracking and leaves conflict detection at the row level. Se la tabella è già pubblicata in altre pubblicazioni di tipo merge, è necessario utilizzare lo stesso valore di rilevamento a livello di colonna utilizzato dagli articoli esistenti basati su questa tabella.If the table is already published in other merge publications, you must use the same column tracking value used by existing articles based on this table. Questo parametro è disponibile solo per gli articoli di tabelle.This parameter is specific to table articles only.

Nota

Se si utilizza il rilevamento a livello di riga per il rilevamento dei conflitti (impostazione predefinita), la tabella di base può includere fino a 1.024 colonne, che devono tuttavia essere filtrate dall'articolo in modo da pubblicare un massimo di 246 colonne.If row tracking is used for conflict detection (the default), the base table can include a maximum of 1,024 columns, but columns must be filtered from the article so that a maximum of 246 columns is published. Se viene utilizzato il rilevamento a livello di colonna, nella tabella di base possono essere incluse al massimo 246 colonne.If column tracking is used, the base table can include a maximum of 246 columns.

[ @status = ] 'status'Stato dell'articolo.[ @status = ] 'status' Is the status of the article. status è di tipo nvarchar (10) e il valore predefinito è unsynced.status is nvarchar(10), with a default of unsynced. Se attivo, viene eseguito lo script di elaborazione iniziale per pubblicare la tabella.If active, the initial processing script to publish the table is run. Se non sincronizzato, lo script di elaborazione iniziale per la pubblicazione della tabella viene eseguito alla successiva esecuzione del agente di snapshot.If unsynced, the initial processing script to publish the table is run at the next time the Snapshot Agent runs.

[ @pre_creation_cmd = ] 'pre_creation_cmd'Specifica il sistema da eseguire se la tabella esiste nel Sottoscrittore durante l'applicazione dello snapshot.[ @pre_creation_cmd = ] 'pre_creation_cmd' Specifies what the system is to do if the table exists at the subscriber when applying the snapshot. pre_creation_cmd è di tipo nvarchar (10). i possibili valori sono i seguenti.pre_creation_cmd is nvarchar(10), and can be one of the following values.

ValoreValue DescrizioneDescription
nessunonone Se la tabella esiste già nel Sottoscrittore, non viene eseguita alcuna azione.If the table already exists at the Subscriber, no action is taken.
deletedelete Esegue un'operazione di eliminazione in base alla clausola WHERE del filtro di subset.Issues a delete based on the WHERE clause in the subset filter.
Drop (impostazione predefinita)drop (default) Elimina la tabella prima di ricrearla.Drops the table before re-creating it. Necessario per supportare i MicrosoftMicrosoft SQL Server CompactSQL Server Compact sottoscrittori.Required to support MicrosoftMicrosoft SQL Server CompactSQL Server Compact Subscribers.
troncaretruncate Tronca la tabella di destinazione.Truncates the destination table.

[ @creation_script = ] 'creation_script'Percorso e nome di uno script facoltativo dello schema dell'articolo utilizzato per creare l'articolo nel database di sottoscrizione.[ @creation_script = ] 'creation_script' Is the path and name of an optional article schema script used to create the article in the subscription database. creation_script è di tipo nvarchar (255) e il valore predefinito è null.creation_script is nvarchar(255), with a default of NULL.

Nota

Gli script di creazione non vengono eseguiti nei Sottoscrittori SQL Server CompactSQL Server Compact.Creation scripts are not run on SQL Server CompactSQL Server Compact Subscribers.

[ @schema_option = ] schema_optionMappa di bit dell'opzione di generazione dello schema per l'articolo specificato.[ @schema_option = ] schema_option Is a bitmap of the schema generation option for the given article. schema_option è binario (8) e può essere | (OR bit per bit) prodotto di uno o più di questi valori.schema_option is binary(8), and can be the | (Bitwise OR) product of one or more of these values.

ValoreValue DescrizioneDescription
0x000x00 Disabilita la creazione di script da parte del agente di snapshot e utilizza lo script di creazione dello schema fornito definito in creation_script.Disables scripting by the Snapshot Agent and uses the provided schema precreation script defined in creation_script.
0x010x01 Genera le istruzioni per la creazione di oggetti (CREATE TABLE, CREATE PROCEDURE e così via).Generates the object creation (CREATE TABLE, CREATE PROCEDURE, and so on). Questo è il valore predefinito per gli articoli di stored procedure.This is the default value for stored procedure articles.
0x100x10 Genera un indice cluster corrispondente.Generates a corresponding clustered index. Anche se questa opzione non viene impostata, se sono già definiti in una tabella pubblicata, gli indici correlati alle chiavi primarie e i vincoli UNIQUE vengono generati.Even if this option is not set, indexes related to primary keys and UNIQUE constraints are generated if they are already defined on a published table.
0x200x20 Converte i tipi di dati definiti dall'utente (UDT) in tipi di dati di base nel Sottoscrittore.Converts user-defined data types (UDT) to base data types at the Subscriber. Questa opzione non può essere usata quando è presente un vincolo CHECK o DEFAULT su una colonna UDT, se una colonna UDT è inclusa nella chiave primaria o se una colonna calcolata fa riferimento a una colonna UDT.This option cannot be used when there is a CHECK or DEFAULT constraint on a UDT column, if a UDT column is part of the primary key, or if a computed column references a UDT column.
0x400x40 Genera indici non cluster corrispondenti.Generates corresponding nonclustered indexes. Anche se questa opzione non viene impostata, se sono già definiti in una tabella pubblicata, gli indici correlati alle chiavi primarie e i vincoli UNIQUE vengono generati.Even if this option is not set, indexes related to primary keys and UNIQUE constraints are generated if they are already defined on a published table.
0x800x80 Replica i vincoli PRIMARY KEY.Replicates PRIMARY KEY constraints. Vengono replicati anche tutti gli indici correlati al vincolo, anche se le opzioni 0x10 e 0x40 non sono abilitate.Any indexes related to the constraint are also replicated, even if options 0x10 and 0x40 are not enabled.
0x1000x100 Replica gli eventuali trigger dell'utente di un articolo di tabella.Replicates user triggers on a table article, if defined.
0x2000x200 Replica i vincoli FOREIGN KEY.Replicates FOREIGN KEY constraints. Se la tabella con riferimenti non fa parte di una pubblicazione, tutti i vincoli FOREIGN KEY in una tabella pubblicata non vengono replicati.If the referenced table is not part of a publication, all FOREIGN KEY constraints on a published table are not replicated.
0x4000x400 Replica i vincoli CHECK.Replicates CHECK constraints.
0x8000x800 Replica i valori predefiniti.Replicates defaults.
0x10000x1000 Replica le regole di confronto a livello di colonna.Replicates column-level collation.
0x20000x2000 Replica le proprietà estese associate all'oggetto di origine dell'articolo pubblicato.Replicates extended properties associated with the published article source object.
0x40000x4000 Replica i vincoli UNIQUE.Replicates UNIQUE constraints. Vengono replicati anche tutti gli indici correlati al vincolo, anche se le opzioni 0x10 e 0x40 non sono abilitate.Any indexes related to the constraint are also replicated, even if options 0x10 and 0x40 are not enabled.
0x80000x8000 Questa opzione non è valida per i server di pubblicazione che eseguono SQL Server 2005 (9.x)SQL Server 2005 (9.x) o versioni successive.This option is not valid for Publishers running SQL Server 2005 (9.x)SQL Server 2005 (9.x) or later versions.
0x100000x10000 Replica i vincoli CHECK come NOT FOR REPLICATION in modo che i vincoli non vengono imposti durante la sincronizzazione.Replicates CHECK constraints as NOT FOR REPLICATION so that the constraints are not enforced during synchronization.
0x200000x20000 Replica i vincoli FOREIGN KEY come NOT FOR REPLICATION in modo che i vincoli non vengono imposti durante la sincronizzazione.Replicates FOREIGN KEY constraints as NOT FOR REPLICATION so that the constraints are not enforced during synchronization.
0x400000x40000 Replica i filegroup associati a una tabella o un indice partizionato.Replicates filegroups associated with a partitioned table or index.
0x800000x80000 Replica lo schema di partizione per una tabella partizionata.Replicates the partition scheme for a partitioned table.
0x1000000x100000 Replica lo schema di partizione per un indice partizionato.Replicates the partition scheme for a partitioned index.
0x2000000x200000 Replica le statistiche della tabella.Replicates table statistics.
0x4000000x400000 Replica le associazioni predefinite.Replicates default Bindings.
0x8000000x800000 Replica le associazioni di regole.Replicates rule Bindings.
0x10000000x1000000 Replica l'indice full-text.Replicates the full-text index.
0x20000000x2000000 Le raccolte di XML Schema associate alle colonne XML non vengono replicate.XML schema collections bound to xml columns are not replicated.
0x40000000x4000000 Replica gli indici nelle colonne XML .Replicates indexes on xml columns.
0x80000000x8000000 Crea gli eventuali schemi non ancora presenti nel Sottoscrittore.Creates any schemas not already present on the subscriber.
0x100000000x10000000 Converte le colonne XML in ntext nel Sottoscrittore.Converts xml columns to ntext on the Subscriber.
0x200000000x20000000 Converte i tipi di dati LOB (nvarchar (max), varchar (max) e varbinary (max)) introdotti in in SQL Server 2005 (9.x)SQL Server 2005 (9.x) tipi di dati supportati in SQL Server 2000 (8.x)SQL Server 2000 (8.x) .Converts large object data types (nvarchar(max), varchar(max), and varbinary(max)) introduced in SQL Server 2005 (9.x)SQL Server 2005 (9.x) to data types that are supported on SQL Server 2000 (8.x)SQL Server 2000 (8.x).
0x400000000x40000000 Replica le autorizzazioni.Replicates permissions.
0x800000000x80000000 Esegue un tentativo di rimozione delle dipendenze dagli oggetti che non fanno parte della pubblicazione.Attempts to drop dependencies to any objects that are not part of the publication.
0x1000000000x100000000 Utilizzare questa opzione per replicare l'attributo FILESTREAM se è specificato nelle colonne varbinary (max) .Use this option to replicate the FILESTREAM attribute if it is specified on varbinary(max) columns. Non specificare questa opzione se si stanno replicando tabelle nei Sottoscrittori SQL Server 2005 (9.x)SQL Server 2005 (9.x).Do not specify this option if you are replicating tables to SQL Server 2005 (9.x)SQL Server 2005 (9.x) Subscribers. La replica di tabelle con colonne FILESTREAM SQL Server 2000 (8.x)SQL Server 2000 (8.x) nei Sottoscrittori non è supportata, indipendentemente dalla modalità di impostazione di questa opzione dello schema.Replicating tables that have FILESTREAM columns to SQL Server 2000 (8.x)SQL Server 2000 (8.x) Subscribers is not supported, regardless of how this schema option is set. Vedere l'opzione correlata 0x800000000.See related option 0x800000000.
0x2000000000x200000000 Converte i tipi di dati di data e ora (Data, ora, DateTimeOffsete datetime2) introdotti in in SQL Server 2008SQL Server 2008 tipi di dati supportati nelle versioni precedenti di SQL ServerSQL Server .Converts date and time data types (date, time, datetimeoffset, and datetime2) introduced in SQL Server 2008SQL Server 2008 to data types that are supported on earlier versions of SQL ServerSQL Server.
0x4000000000x400000000 Replica l'opzione di compressione per dati e indici.Replicates the compression option for data and indexes. Per altre informazioni, vedere Data Compression.For more information, see Data Compression.
0x8000000000x800000000 Impostare questa opzione per archiviare i dati FILESTREAM nel relativo filegroup nel Sottoscrittore.Set this option to store FILESTREAM data on its own filegroup at the Subscriber. Se questa opzione non è impostata, i dati FILESTREAM vengono archiviati nel filegroup predefinito.If this option is not set, FILESTREAM data is stored on the default filegroup. Tramite la replica non vengono creati filegroup, pertanto, se si imposta questa opzione, è necessario creare il filegroup prima di applicare lo snapshot nel Sottoscrittore.Replication does not create filegroups; therefore, if you set this option, you must create the filegroup before you apply the snapshot at the Subscriber. Per altre informazioni su come creare oggetti prima di applicare lo snapshot, vedere eseguire gli script prima e dopo l'applicazione dello snapshot.For more information about how to create objects before you apply the snapshot, see Execute Scripts Before and After the Snapshot Is Applied.

Vedere l'opzione correlata 0x100000000.See related option 0x100000000.
0x10000000000x1000000000 Converte Common Language Runtime tipi CLR definiti dall'utente (UDT) in varbinary (max) in modo che le colonne di tipo UDT possano essere replicate nei Sottoscrittori che eseguono SQL Server 2005 (9.x)SQL Server 2005 (9.x) .Converts common language runtime (CLR) user-defined types (UDTs) to varbinary(max) so that columns of type UDT can be replicated to Subscribers that are running SQL Server 2005 (9.x)SQL Server 2005 (9.x).
0x20000000000x2000000000 Converte il tipo di dati hierarchyid in varbinary (max) in modo che le colonne di tipo hierarchyid possano essere replicate nei Sottoscrittori che eseguono SQL Server 2005 (9.x)SQL Server 2005 (9.x) .Converts the hierarchyid data type to varbinary(max) so that columns of type hierarchyid can be replicated to Subscribers that are running SQL Server 2005 (9.x)SQL Server 2005 (9.x). Per ulteriori informazioni sull'utilizzo delle colonne hierarchyid nelle tabelle replicate, vedere hierarchyid ()Transact-SQL .For more information about how to use hierarchyid columns in replicated tables, see hierarchyid (Transact-SQL).
0x40000000000x4000000000 Replica gli eventuali indici filtrati sulla tabella.Replicates any filtered indexes on the table. Per altre informazioni sugli indici filtrati, vedere creare indici filtrati.For more information about filtered indexes, see Create Filtered Indexes.
0x80000000000x8000000000 Converte i tipi di dati geography e Geometry in varbinary (max) in modo che le colonne di questi tipi possano essere replicate nei Sottoscrittori che eseguono SQL Server 2005 (9.x)SQL Server 2005 (9.x) .Converts the geography and geometry data types to varbinary(max) so that columns of these types can be replicated to Subscribers that are running SQL Server 2005 (9.x)SQL Server 2005 (9.x).
0x100000000000x10000000000 Replica gli indici nelle colonne di tipo geography e Geometry.Replicates indexes on columns of type geography and geometry.

Se è NULL, il sistema genera automaticamente un'opzione di schema valida per l'articolo.If this value is NULL, the system auto-generates a valid schema option for the article. La tabella delle opzioni predefinite dello schema nella sezione Osservazioni Mostra il valore scelto in base al tipo di articolo.The Default Schema Option table in the Remarks section shows the value that is chosen based upon the article type. Inoltre, non tutti i valori schema_option sono validi per ogni tipo di replica e tipo di articolo.Also, not all schema_option values are valid for every type of replication and article type. La tabella delle opzioni di schema valida indicata nella sezione Osservazioni Mostra le opzioni che è possibile specificare per un determinato tipo di articolo.The Valid Schema Option table given in the Remarks shows the options that can be specified for a given article type.

Nota

Il parametro schema_option influiscono solo sulle opzioni di replica per lo snapshot iniziale.The schema_option parameter only affects replication options for the initial snapshot. Una volta che lo schema iniziale è stato generato dal agente di snapshot e applicato nel Sottoscrittore, la replica delle modifiche dello schema di pubblicazione nel Sottoscrittore viene eseguita in base alle regole di replica delle modifiche dello schema e all'impostazione del parametro replicate_ddl specificata in sp_addmergepublication.Once the initial schema has been generated by the Snapshot Agent and applied at the Subscriber, the replication of publication schema changes to the Subscriber occur based on schema change replication rules and the replicate_ddl parameter setting specified in sp_addmergepublication. Per altre informazioni, vedere Apportare modifiche allo schema nei database di pubblicazione.For more information, see Make Schema Changes on Publication Databases.

[ @subset_filterclause = ] 'subset_filterclause'Clausola WHERE che specifica il filtro orizzontale di un articolo di tabella senza la parola WHERE.[ @subset_filterclause = ] 'subset_filterclause' Is a WHERE clause specifying the horizontal filtering of a table article without the word WHERE included. subset_filterclause è di tipo nvarchar (1000) e il valore predefinito è una stringa vuota.subset_filterclause is of nvarchar(1000), with a default of an empty string.

Importante

Per motivi relativi alle prestazioni, è consigliabile evitare di applicare funzioni ai nomi di colonna nelle clausole di filtro di riga con parametri, come LEFT([MyColumn]) = SUSER_SNAME().For performance reasons, we recommended that you not apply functions to column names in parameterized row filter clauses, such as LEFT([MyColumn]) = SUSER_SNAME(). Se si usa HOST_NAME in una clausola di filtro e si sostituisce il valore di HOST_NAME, potrebbe essere necessario convertire i tipi di dati tramite Convert.If you use HOST_NAME in a filter clause and override the HOST_NAME value, you might have to convert data types by using CONVERT. Per ulteriori informazioni sulle procedure consigliate in questo caso, vedere la sezione "override del valore HOST_NAME ()" nei filtri di riga con parametri.For more information about best practices for this case, see the section "Overriding the HOST_NAME() Value" in Parameterized Row Filters.

[ @article_resolver = ] 'article_resolver'È il sistema di risoluzione basato su COM utilizzato per risolvere i conflitti nell'articolo di tabella o l'assembly .NET Framework richiamato per eseguire la logica di business personalizzata sull'articolo di tabella.[ @article_resolver = ] 'article_resolver' Is the COM-based resolver used to resolve conflicts on the table article or the .NET Framework assembly invoked to execute custom business logic on the table article. article_resolver è di tipo varchar (255) e il valore predefinito è null.article_resolver is varchar(255), with a default of NULL. I valori disponibili per questi parametri sono elencati nell'argomento relativo ai sistemi di risoluzione personalizzati MicrosoftMicrosoft.Available values for this parameter are listed in MicrosoftMicrosoft Custom Resolvers. Se il valore specificato non corrisponde a uno dei sistemi di risoluzione MicrosoftMicrosoft, in SQL ServerSQL Server viene utilizzato il sistema di risoluzione specificato anziché quello di sistema.If the value provided is not one of the MicrosoftMicrosoft resolvers, SQL ServerSQL Server uses the specified resolver instead of the system-supplied resolver. Usare sp_enumcustomresolvers per enumerare l'elenco di resolver personalizzati disponibili.Use sp_enumcustomresolvers to enumerate the list of available custom resolvers. Per ulteriori informazioni, vedere esecuzione della logica di business durante la sincronizzazione di tipo merge e rilevamento e risoluzione dei conflitti di replica di tipo merge avanzati.For more information, see Execute Business Logic During Merge Synchronization and Advanced Merge Replication Conflict Detection and Resolution.

[ @resolver_info = ] 'resolver_info'Viene usato per specificare informazioni aggiuntive richieste da un resolver personalizzato.[ @resolver_info = ] 'resolver_info' Is used to specify additional information required by a custom resolver. Alcuni sistemi di risoluzione MicrosoftMicrosoft richiedono una colonna come input.Some of the MicrosoftMicrosoft Resolvers require a column provided as input to the resolver. resolver_info è di tipo nvarchar (255) e il valore predefinito è null.resolver_info is nvarchar(255), with a default of NULL. Per altre informazioni, vedere Sistemi di risoluzione dei conflitti basati su Microsoft COM.For more information, see Microsoft COM-Based Resolvers.

[ @source_owner = ] 'source_owner'Nome del proprietario del source_object.[ @source_owner = ] 'source_owner' Is the name of the owner of the source_object. source_owner è di tipo sysnamee il valore predefinito è null.source_owner is sysname, with a default of NULL. Se il valore è NULL, l'utente corrente verrà considerato il proprietario.If NULL, the current user is assumed to be the owner.

[ @destination_owner = ] 'destination_owner'Proprietario dell'oggetto nel database di sottoscrizione, se diverso da "dbo".[ @destination_owner = ] 'destination_owner' Is the owner of the object in the subscription database, if not 'dbo'. destination_owner è di tipo sysnamee il valore predefinito è null.destination_owner is sysname, with a default of NULL. Se NULL, 'dbo' verrà considerato il proprietario.If NULL, 'dbo' is assumed to be the owner.

[ @vertical_partition = ] 'column_filter'Abilita e Disabilita l'applicazione di filtri alle colonne in un articolo di tabella.[ @vertical_partition = ] 'column_filter' Enables and disables column filtering on a table article. vertical_partition è di tipo nvarchar (5) e il valore predefinito è false.vertical_partition is nvarchar(5) with a default of FALSE.

false indica che non è presente alcun filtro verticale e che tutte le colonne vengono pubblicate.false indicates there is no vertical filtering and publishes all columns.

true Cancella tutte le colonne ad eccezione della chiave primaria e delle colonne ROWGUID dichiarate.true clears all columns except the declared primary key and ROWGUID columns. Le colonne vengono aggiunte utilizzando sp_mergearticlecolumn.Columns are added by using sp_mergearticlecolumn.

[ @auto_identity_range = ] 'automatic_identity_range'Abilita e Disabilita la gestione automatica degli intervalli di valori Identity per questo articolo di tabella in una pubblicazione al momento della creazione.[ @auto_identity_range = ] 'automatic_identity_range' Enables and disables automatic identity range handling for this table article on a publication at the time it is created. auto_identity_range è di tipo nvarchar (5) e il valore predefinito è false.auto_identity_range is nvarchar(5), with a default of FALSE. true consente la gestione automatica degli intervalli di valori Identity, mentre false lo Disabilita.true enables automatic identity range handling, while false disables it.

Nota

auto_identity_range è stato deprecato e viene fornito solo per compatibilità con le versioni precedenti.auto_identity_range has been deprecated and is provided for backward compatibility only. Usare identityrangemanagementoption per specificare le opzioni di gestione degli intervalli di valori Identity.You should use identityrangemanagementoption for specifying identity range management options. Per altre informazioni, vedere Replicare colonne Identity.For more information, see Replicate Identity Columns.

[ @pub_identity_range = ] pub_identity_rangeControlla la dimensione dell'intervallo di valori Identity allocata a un Sottoscrittore con una sottoscrizione server quando viene utilizzata la gestione automatica degli intervalli di valori Identity.[ @pub_identity_range = ] pub_identity_range Controls the identity range size allocated to a Subscriber with a server subscription when automatic identity range management is used. L'intervallo di valori Identity è riservato al Sottoscrittore di ripubblicazione per l'assegnazione ai propri Sottoscrittori.This identity range is reserved for a republishing Subscriber to allocate to its own Subscribers. pub_identity_range è di tipo biginte il valore predefinito è null.pub_identity_range is bigint, with a default of NULL. È necessario specificare questo parametro se identityrangemanagementoption è automatico o se auto_identity_range è true.You must specify this parameter if identityrangemanagementoption is auto or if auto_identity_range is true.

[ @identity_range = ] identity_rangeControlla la dimensione dell'intervallo di valori Identity allocata al server di pubblicazione e al Sottoscrittore quando viene utilizzata la gestione automatica degli intervalli di valori Identity.[ @identity_range = ] identity_range Controls the identity range size allocated both to the Publisher and to the Subscriber when automatic identity range management is used. identity_range è di tipo biginte il valore predefinito è null.identity_range is bigint, with a default of NULL. È necessario specificare questo parametro se identityrangemanagementoption è automatico o se auto_identity_range è true.You must specify this parameter if identityrangemanagementoption is auto or if auto_identity_range is true.

Nota

identity_range controlla le dimensioni dell'intervallo di valori Identity nei Sottoscrittori di ripubblicazione utilizzando versioni precedenti di SQL ServerSQL Server .identity_range controls the identity range size at republishing Subscribers using previous versions of SQL ServerSQL Server.

[ @threshold = ] thresholdValore percentuale che controlla quando il agente di merge assegna un nuovo intervallo di valori Identity.[ @threshold = ] threshold Percentage value that controls when the Merge Agent assigns a new identity range. Quando viene utilizzata la percentuale di valori specificata in Threshold , il agente di merge crea un nuovo intervallo di valori Identity.When the percentage of values specified in threshold is used, the Merge Agent creates a new identity range. Threshold è di tipo inte il valore predefinito è null.threshold is int, with a default of NULL. È necessario specificare questo parametro se identityrangemanagementoption è automatico o se auto_identity_range è true.You must specify this parameter if identityrangemanagementoption is auto or if auto_identity_range is true.

[ @verify_resolver_signature = ] verify_resolver_signatureSpecifica se una firma digitale viene verificata prima di utilizzare un sistema di risoluzione dei conflitti nella replica di tipo merge.[ @verify_resolver_signature = ] verify_resolver_signature Specifies if a digital signature is verified before using a resolver in merge replication. verify_resolver_signature è di tipo inte il valore predefinito è 1.verify_resolver_signature is int, with a default of 1.

0 indica che la firma non verrà verificata.0 specifies that the signature will not be verified.

1 specifica che la firma verrà verificata per verificare se si tratta di una fonte attendibile.1 specifies that the signature will be verified to see if it is from a trusted source.

[ @destination_object = ] 'destination_object'Nome dell'oggetto nel database di sottoscrizione.[ @destination_object = ] 'destination_object' Is the name of the object in the subscription database. destination_object è di tipo sysnamee il valore predefinito è ** @ source_object**.destination_object is sysname, with a default value of what is in @source_object. È possibile specificare questo parametro solo se l'articolo include solo lo schema, come nel caso di stored procedure, viste e funzioni definite dall'utente.This parameter can be specified only if the article is a schema-only article, such as stored procedures, views, and UDFs. Se l'articolo specificato è un articolo di tabella, il valore in *@source_object* sostituisce il valore in destination_object.If the article specified is a table article, the value in *@source_object* overrides the value in destination_object.

[ @allow_interactive_resolver = ] 'allow_interactive_resolver'Abilita o Disabilita l'utilizzo del sistema di risoluzione interattivo in un articolo.[ @allow_interactive_resolver = ] 'allow_interactive_resolver' Enables or disables the use of the Interactive Resolver on an article. allow_interactive_resolver è di tipo nvarchar (5) e il valore predefinito è false.allow_interactive_resolver is nvarchar(5), with a default of FALSE. true consente l'utilizzo del sistema di risoluzione interattivo sull'articolo. false lo Disabilita.true enables the use of the Interactive Resolver on the article; false disables it.

Nota

Il sistema di risoluzione interattivo non è supportato dai Sottoscrittori SQL Server CompactSQL Server Compact.Interactive Resolver is not supported by SQL Server CompactSQL Server Compact Subscribers.

[ @fast_multicol_updateproc = ] 'fast_multicol_updateproc'Questo parametro è stato deprecato e viene mantenuto per compatibilità con le versioni precedenti degli script.[ @fast_multicol_updateproc = ] 'fast_multicol_updateproc' This parameter has been deprecated and is maintained for backward compatibility of scripts.

[ @check_permissions = ] check_permissionsBitmap delle autorizzazioni a livello di tabella verificate quando il agente di merge applica le modifiche al server di pubblicazione.[ @check_permissions = ] check_permissions Is a bitmap of the table-level permissions that are verified when the Merge Agent applies changes to the Publisher. Se l'account di accesso o l'account utente del server di pubblicazione utilizzato per il processo di merge non dispone delle autorizzazioni corrette per le tabelle, le modifiche non valide vengono registrate come conflitti.If the Publisher login/user account used by the merge process does not have the correct table permissions, the invalid changes are logged as conflicts. check_permissions è di tipo inte può essere | (OR bit per bit) prodotto di uno o più dei valori seguenti.check_permissions is int, and can be the | (Bitwise OR) product of one or more of the following values.

ValoreValue DescrizioneDescription
0x00 (impostazione predefinita)0x00 (default) Le autorizzazioni non vengono controllate.Permissions are not checked.
0x100x10 Le autorizzazioni vengono controllate nel server di pubblicazione prima di consentire il caricamento delle operazioni di inserimento eseguite nel Sottoscrittore.Checks permissions at the Publisher before insert operations made at a Subscriber can be uploaded.
0x200x20 Le autorizzazioni vengono controllate nel server di pubblicazione prima di consentire il caricamento delle operazioni di aggiornamento eseguite nel Sottoscrittore.Checks permissions at the Publisher before update operations made at a Subscriber can be uploaded.
0x400x40 Le autorizzazioni vengono controllate nel server di pubblicazione prima di consentire il caricamento delle operazioni di eliminazione eseguite nel Sottoscrittore.Checks permissions at the Publisher before delete operations made at a Subscriber can be uploaded.

[ @force_invalidate_snapshot = ] force_invalidate_snapshotConferma che l'azione eseguita da questo stored procedure potrebbe invalidare uno snapshot esistente.[ @force_invalidate_snapshot = ] force_invalidate_snapshot Acknowledges that the action taken by this stored procedure may invalidate an existing snapshot. force_invalidate_snapshot è di bite il valore predefinito è 0.force_invalidate_snapshot is a bit, with a default of 0.

0 indica che l'aggiunta di un articolo non comporta l'invalidità dello snapshot.0 specifies that adding an article does not cause the snapshot to be invalid. Se la stored procedure rileva che la modifica richiede un nuovo snapshot, viene generato un errore e non viene apportata alcuna modifica.If the stored procedure detects that the change does require a new snapshot, an error occurs and no changes are made.

1 specifica che l'aggiunta di un articolo potrebbe invalidare lo snapshot e, se sono presenti sottoscrizioni che richiedono un nuovo snapshot, consente di contrassegnare lo snapshot esistente come obsoleto e di generare un nuovo snapshot.1 specifies that adding an article may cause the snapshot to be invalid, and if there are existing subscriptions that require a new snapshot, gives permission for the existing snapshot to be marked as obsolete and a new snapshot generated. force_invalidate_snapshot viene impostato su 1 quando si aggiunge un articolo a una pubblicazione con uno snapshot esistente.force_invalidate_snapshot is set to 1 when adding an article to a publication with an existing snapshot.

[ @published_in_tran_pub = ] 'published_in_tran_pub'Indica che un articolo in una pubblicazione di tipo merge viene pubblicato anche in una pubblicazione transazionale.[ @published_in_tran_pub = ] 'published_in_tran_pub' Indicates that an article in a merge publication is also published in a transactional publication. published_in_tran_pub è di tipo nvarchar (5) e il valore predefinito è false.published_in_tran_pub is nvarchar(5), with a default of FALSE. true specifica che l'articolo è pubblicato anche in una pubblicazione transazionale.true specifies that the article is also published in a transactional publication.

[ @force_reinit_subscription = ] force_reinit_subscriptionConferma che l'azione eseguita da questo stored procedure potrebbe richiedere la reinizializzazione delle sottoscrizioni esistenti.[ @force_reinit_subscription = ] force_reinit_subscription Acknowledges that the action taken by this stored procedure may require existing subscriptions to be reinitialized. force_reinit_subscription è di bite il valore predefinito è 0.force_reinit_subscription is a bit, with a default of 0.

0 indica che l'aggiunta di un articolo non comporta la reinizializzazione della sottoscrizione.0 specifies that adding an article does not cause the subscription to be reinitialized. Se la stored procedure rileva che la modifica richiede la reinizializzazione delle sottoscrizioni esistenti, viene generato un errore e non viene apportata alcuna modifica.If the stored procedure detects that the change would require existing subscriptions to be reinitialized, an error occurs and no changes are made.

1 indica che le modifiche apportate all'articolo di merge causano la reinizializzazione delle sottoscrizioni esistenti e consente la reinizializzazione della sottoscrizione.1 means that changes to the merge article causes existing subscriptions to be reinitialized, and gives permission for the subscription reinitialization to occur. force_reinit_subscription viene impostato su 1 quando subset_filterclause specifica un filtro di riga con parametri.force_reinit_subscription is set to 1 when subset_filterclause specifies a parameterized row filter.

[ @logical_record_level_conflict_detection = ] 'logical_record_level_conflict_detection'Specifica il livello di rilevamento dei conflitti per un articolo membro di un record logico.[ @logical_record_level_conflict_detection = ] 'logical_record_level_conflict_detection' Specifies the level of conflict detection for an article that is a member of a logical record. logical_record_level_conflict_detection è di tipo nvarchar (5) e il valore predefinito è false.logical_record_level_conflict_detection is nvarchar(5), with a default of FALSE.

true specifica che verrà rilevato un conflitto se le modifiche vengono apportate in qualsiasi punto del record logico.true specifies that a conflict will be detected if changes are made anywhere in the logical record.

false specifica che il rilevamento dei conflitti predefinito viene utilizzato come specificato da column_tracking.false specifies that the default conflict detection is used as specified by column_tracking. Per altre informazioni, vedere Raggruppare modifiche alle righe correlate con record logici.For more information, see Group Changes to Related Rows with Logical Records.

Nota

Poiché i record logici non sono supportati dai SQL Server CompactSQL Server Compact sottoscrittori, è necessario specificare il valore false per logical_record_level_conflict_detection per supportare tali Sottoscrittori.Because logical records are not supported by SQL Server CompactSQL Server Compact Subscribers, you must specify a value of false for logical_record_level_conflict_detection to support these Subscribers.

[ @logical_record_level_conflict_resolution = ] 'logical_record_level_conflict_resolution'Specifica il livello di risoluzione dei conflitti per un articolo membro di un record logico.[ @logical_record_level_conflict_resolution = ] 'logical_record_level_conflict_resolution' Specifies the level of conflict resolution for an article that is a member of a logical record. logical_record_level_conflict_resolution è di tipo nvarchar (5) e il valore predefinito è false.logical_record_level_conflict_resolution is nvarchar(5), with a default of FALSE.

true specifica che l'intero record logico vincente sovrascrive il record logico perdente.true specifies that the entire winning logical record overwrites the losing logical record.

false specifica che le righe vincenti non sono vincolate al record logico.false specifies that winning rows are not constrained to the logical record. Se logical_record_level_conflict_detection è true, è necessario impostare anche logical_record_level_conflict_resolution su true.If logical_record_level_conflict_detection is true, then logical_record_level_conflict_resolution must also be set to true. Per altre informazioni, vedere Raggruppare modifiche alle righe correlate con record logici.For more information, see Group Changes to Related Rows with Logical Records.

Nota

Poiché i record logici non sono supportati dai SQL Server CompactSQL Server Compact sottoscrittori, è necessario specificare il valore false per logical_record_level_conflict_resolution per supportare tali Sottoscrittori.Because logical records are not supported by SQL Server CompactSQL Server Compact Subscribers, you must specify a value of false for logical_record_level_conflict_resolution to support these Subscribers.

[ @partition_options = ] partition_optionsDefinisce la modalità di partizionamento dei dati nell'articolo, che consente di ottimizzare le prestazioni se tutte le righe appartengono a una sola partizione o a una sola sottoscrizione.[ @partition_options = ] partition_options Defines the way in which data in the article is partitioned, which enables performance optimizations when all rows belong in only one partition or in only one subscription. partition_options è di tinyint. i possibili valori sono i seguenti.partition_options is tinyint, and can be one of the following values.

ValoreValue DescrizioneDescription
0 (predefinito)0 (default) Il filtro applicato all'articolo è statico oppure non restituisce un subset di dati univoco per ogni partizione, ovvero si creano partizioni sovrapposte.The filtering for the article either is static or does not yield a unique subset of data for each partition, that is, an "overlapping" partition.
11 Le partizioni sono sovrapposte e gli aggiornamenti DML (Data Manipulation Language) eseguiti nel Sottoscrittore non possono modificare la partizione a cui appartiene una riga.The partitions are overlapping, and data manipulation language (DML) updates made at the Subscriber cannot change the partition to which a row belongs.
22 Il filtro applicato all'articolo restituisce partizioni non sovrapposte, ma più Sottoscrittori possono ricevere la stessa partizione.The filtering for the article yields non-overlapping partitions, but multiple Subscribers can receive the same partition.
33 Il filtro applicato all'articolo restituisce partizioni non sovrapposte univoche per ogni sottoscrizione.The filtering for the article yields non-overlapping partitions that are unique for each subscription.

Nota

Se la tabella di origine di un articolo è già pubblicata in un'altra pubblicazione, il valore di partition_options deve essere lo stesso per entrambi gli articoli.If the source table for an article is already published in another publication, then the value of partition_options must be the same for both articles.

[ @processing_order = ] processing_orderIndica l'ordine di elaborazione degli articoli in una pubblicazione di tipo merge.[ @processing_order = ] processing_order Indicates the processing order of articles in a merge publication. processing_order è di tipo inte il valore predefinito è 0.processing_order is int, with a default of 0. 0 indica che l'articolo non è ordinato e qualsiasi altro valore rappresenta il valore ordinale dell'ordine di elaborazione per l'articolo.0 specifies that the article is unordered, and any other value represents the ordinal value of the processing order for this article. Gli articoli vengono elaborati in ordine crescente in base al valore.Articles are processed in order from lowest to highest value. Se due articoli hanno lo stesso valore, l'ordine di elaborazione è determinato dall'ordine del nome alternativo dell'articolo nella tabella di sistema sysmergearticles .If two articles have the same value, processing order is determined by the order of the article nickname in the sysmergearticles system table. Per altre informazioni, vedere Specificare le proprietà della replica di tipo merge.For more information, see Specify Merge Replication properties.

[ @subscriber_upload_options = ] subscriber_upload_optionsDefinisce le restrizioni sugli aggiornamenti eseguiti in un Sottoscrittore con una sottoscrizione client.[ @subscriber_upload_options = ] subscriber_upload_options Defines restrictions on updates made at a Subscriber with a client subscription. Per altre informazioni, vedere Ottimizzare le prestazioni della replica di tipo merge con gli articoli di solo download.For more information, see Optimize Merge Replication Performance with Download-Only Articles. subscriber_upload_options è di tinyint. i possibili valori sono i seguenti.subscriber_upload_options is tinyint, and can be one of the following values.

ValoreValue DescrizioneDescription
0 (predefinito)0 (default) Nessuna restrizione.No restrictions. Le modifiche eseguite nel Sottoscrittore vengono caricate nel server di pubblicazione.Changes made at the Subscriber are uploaded to the Publisher.
11 Sono consentite modifiche in un Sottoscrittore, ma tali modifiche non vengono caricate nel server di pubblicazione.Changes are allowed at the Subscriber, but they are not uploaded to the Publisher.
22 Non sono consentite modifiche nel Sottoscrittore.Changes are not allowed at the Subscriber.

Per modificare subscriber_upload_options è necessario reinizializzare la sottoscrizione chiamando sp_reinitmergepullsubscription (Transact-SQL).Changing subscriber_upload_options requires the subscription to be reinitialized by calling sp_reinitmergepullsubscription (Transact-SQL).

Nota

Se la tabella di origine di un articolo è già pubblicata in un'altra pubblicazione, il valore di subscriber_upload_options deve essere lo stesso per entrambi gli articoli.If the source table for an article is already published in another publication, the value of subscriber_upload_options must be the same for both articles.

[ @identityrangemanagementoption = ] identityrangemanagementoptionSpecifica il modo in cui viene gestita la gestione degli intervalli di valori Identity per l'articolo.[ @identityrangemanagementoption = ] identityrangemanagementoption Specifies how identity range management is handled for the article. identityrangemanagementoption è di tipo nvarchar (10). i possibili valori sono i seguenti.identityrangemanagementoption is nvarchar(10), and can be one of the following values.

ValoreValue DescrizioneDescription
nessunonone Disabilita la gestione degli intervalli di valori Identity.Disables identity range management.
Manualemanual Contrassegna la colonna Identity con NOT FOR REPLICATION per consentire la gestione manuale degli intervalli di valori Identity.Marks the identity column using NOT FOR REPLICATION to enable manual identity range handling.
autoauto Imposta la gestione automatica degli intervalli di valori Identity.Specifies automatic management of identity ranges.
NULL (impostazione predefinita)NULL(default) Il valore predefinito è Nonequando il valore di auto_identity_range non è true.Defaults to nonewhen the value of auto_identity_range is not true.

Per compatibilità con le versioni precedenti, quando il valore di identityrangemanagementoption è null, viene verificato il valore di auto_identity_range .For backward compatibility, when the value of identityrangemanagementoption is NULL, the value of auto_identity_range is checked. Tuttavia, quando il valore di identityrangemanagementoption non è null, il valore di auto_identity_range viene ignorato.However, when the value of identityrangemanagementoption is not NULL, then the value of auto_identity_range is ignored. Per altre informazioni, vedere Replicare colonne Identity.For more information, see Replicate Identity Columns.

[ @delete_tracking = ] 'delete_tracking'Indica se le eliminazioni vengono replicate.[ @delete_tracking = ] 'delete_tracking' Indicates whether deletes are replicated. delete_tracking è di tipo nvarchar (5) e il valore predefinito è true.delete_tracking is nvarchar(5), with a default of TRUE. false indica che le eliminazioni non vengono replicate e true indica che vengono replicate le eliminazioni, che è il comportamento usuale per la replica di tipo merge.false indicates that deletes are not replicated, and true indicates that deletes are replicated, which is the usual behavior for merge replication. Se delete_tracking è impostato su false, le righe eliminate nel Sottoscrittore devono essere rimosse manualmente nel server di pubblicazione e le righe eliminate nel server di pubblicazione devono essere rimosse manualmente nel Sottoscrittore.When delete_tracking is set to false, rows deleted at the Subscriber must be manually removed at the Publisher, and rows deleted at the Publisher must be manually removed at the Subscriber.

Importante

L'impostazione di delete_tracking su false comporta la non convergenza.Setting delete_tracking to false results in non-convergence. Se la tabella di origine di un articolo è già pubblicata in un'altra pubblicazione, il valore di delete_tracking deve essere lo stesso per entrambi gli articoli.If the source table for an article is already published in another publication, then the value of delete_tracking must be the same for both articles.

Nota

Impossibile impostare le opzioni di delete_tracking tramite la creazione guidata nuova pubblicazione o la finestra di dialogo Proprietà pubblicazione .delete_tracking options cannot be set using the New Publication Wizard or the Publication Properties dialog box.

[ @compensate_for_errors = ] 'compensate_for_errors'Indica se vengono eseguite azioni di compensazione quando vengono rilevati errori durante la sincronizzazione.[ @compensate_for_errors = ] 'compensate_for_errors' Indicates if compensating actions are taken when errors are encountered during synchronization. compensate_for_errorsè di tipo nvarchar (5) e il valore predefinito è false.compensate_for_errors is nvarchar(5), with a default of FALSE. Se impostato su true, le modifiche che non possono essere applicate a un Sottoscrittore o a un server di pubblicazione durante la sincronizzazione comportano sempre azioni di compensazione per annullare la modifica. Tuttavia, un sottoscrittore configurato in modo non corretto che genera un errore può causare l'annullamento delle modifiche in altri sottoscrittori e autori.When set to true, changes that cannot be applied at a Subscriber or Publisher during synchronization always lead to compensating actions to undo the change; however, one incorrectly configured Subscriber that generates an error can cause changes at other Subscribers and Publishers to be undone. false Disabilita queste azioni di compensazione. Tuttavia, gli errori vengono comunque registrati come con la compensazione e le unioni successive continuano a tentare di applicare le modifiche fino a quando l'operazione non riesce.false disables these compensating actions, however, the errors are still logged as with compensation and subsequent merges continues to attempt to apply the changes until successful.

Importante

Anche se i dati nelle righe interessate potrebbero sembrare non convergenti, non appena vengono risolti gli eventuali errori generati le modifiche potranno essere applicate e si otterrà la convergenza dei dati.Although data in the affected rows might appear to be out of convergence, as soon as you address any errors, changes can be applied and data will converge. Se la tabella di origine di un articolo è già pubblicata in un'altra pubblicazione, il valore di compensate_for_errors deve essere lo stesso per entrambi gli articoli.If the source table for an article is already published in another publication, then the value of compensate_for_errors must be the same for both articles.

[ @stream_blob_columns = ] 'stream_blob_columns'Specifica che viene utilizzata l'ottimizzazione del flusso di dati durante la replica di colonne BLOB (Binary Large Object).[ @stream_blob_columns = ] 'stream_blob_columns' Specifies that a data stream optimization be used when replicating binary large object columns. stream_blob_columns è di tipo nvarchar (5) e il valore predefinito è false.stream_blob_columns is nvarchar(5), with a default of FALSE. true indica che verrà tentata l'ottimizzazione.true means that the optimization will be attempted. stream_blob_columns è impostato su true quando FILESTREAM è abilitato.stream_blob_columns is set to true when FILESTREAM is enabled. In questo modo, la replica dei dati FILESTREAM può essere eseguita in maniera ottimale e si riduce l'utilizzo della memoria.This allows replication of FILESTREAM data to perform optimally and reduce memory utilization. Per forzare gli articoli di tabella FILESTREAM in modo che non utilizzino flussi blob, utilizzare sp_changemergearticle per impostare stream_blob_columns su false.To force FILESTREAM table articles to not use blob streaming, use sp_changemergearticle to set stream_blob_columns to false.

Importante

L'abilitazione di questa ottimizzazione della memoria può ridurre le prestazioni dell'agente di merge durante la sincronizzazione.Enabling this memory optimization may reduce the performance of the Merge Agent during synchronization. È consigliabile utilizzare questa opzione solo se vengono replicate colonne contenenti più megabyte di dati.This option should only be used when replicating columns that contain megabytes of data.

Nota

Alcune funzionalità della replica di tipo merge, come i record logici, possono comunque impedire l'utilizzo dell'ottimizzazione del flusso durante la replica di oggetti binari di grandi dimensioni anche con stream_blob_columns impostato su true.Certain merge replication functionalities, such as logical records, can still prevent the stream optimization from being used when replicating binary large objects even with stream_blob_columns set to true.

Valori del codice restituitoReturn Code Values

0 (operazione completata) o 1 (operazione non riuscita)0 (success) or 1 (failure)

OsservazioniRemarks

sp_addmergearticle viene utilizzata nella replica di tipo merge.sp_addmergearticle is used in merge replication.

Quando si pubblicano gli oggetti, nei Sottoscrittori vengono copiate le relative definizioni.When you publish objects, their definitions are copied to Subscribers. Per la pubblicazione di un oggetto di database che dipende da altri oggetti, è necessario pubblicare tutti gli oggetti a cui fa riferimento.If you are publishing a database object that depends on one or more other objects, you must publish all referenced objects. Se ad esempio si pubblica una vista che dipende da una tabella, sarà necessario pubblicare anche la tabella.For example, if you publish a view that depends on a table, you must publish the table also.

Se si specifica un valore pari a 3 per partition_options, può essere presente una sola sottoscrizione per ogni partizione di dati nell'articolo.If you specify a value of 3 for partition_options, there can be only a single subscription for each partition of data in that article. Se si crea una seconda sottoscrizione nella quale il criterio di filtro porta alla restituzione della stessa partizione della sottoscrizione esistente, quest'ultima viene eliminata.If a second subscription is created in which the filtering criterion of the new subscription resolves to the same partition as the existing subscription, the existing subscription is dropped.

Quando si specifica un valore pari a 3 per partition_options, i metadati vengono puliti ogni volta che viene eseguita la agente di merge e lo snapshot partizionato scade più rapidamente.When specifying a value of 3 for partition_options, metadata is cleaned-up whenever the Merge Agent runs and the partitioned snapshot expires more quickly. Quando si utilizza questa opzione è consigliabile prendere in considerazione l'abilitazione di snapshot partizionati richiesti dal Sottoscrittore.When using this option, you should consider enabling subscriber requested partitioned snapshot. Per altre informazioni, vedere Snapshots for Merge Publications with Parameterized Filters.For more information, see Snapshots for Merge Publications with Parameterized Filters.

L'aggiunta di un articolo con un filtro orizzontale statico, utilizzando subset_filterclause, a una pubblicazione esistente con articoli con filtri con parametri richiede la reinizializzazione delle sottoscrizioni.Adding an article with a static horizontal filter, using subset_filterclause, to an existing publication with articles that have parameterized filters requires the subscriptions be reinitialized.

Quando si specifica processing_order, è consigliabile lasciare gap tra i valori dell'ordine degli articoli, semplificando l'impostazione di nuovi valori in futuro.When specifying processing_order, we recommend leaving gaps between the article order values, which makes it easier to set new values in the future. Se, ad esempio, si dispone di tre articoli denominati Articolo1, Articolo2 e Articolo3, impostare processing_order su 10, 20 e 30, anziché 1, 2 e 3.For example, if you have three articles Article1, Article2, and Article3, set processing_order to 10, 20, and 30, rather than 1, 2, and 3. Per altre informazioni, vedere Specificare le proprietà della replica di tipo merge.For more information, see Specify Merge Replication properties.

Tabella delle opzioni predefinite dello schemaDefault Schema Option Table

In questa tabella viene descritto il valore predefinito impostato dal stored procedure se viene specificato un valore NULL per schema_option, che dipende dal tipo di articolo.This table describes the default value that is set by the stored procedure if a NULL value is specified for schema_option, which depends on article type.

Tipo di articoloArticle type Valore delle opzioni di schemaSchema option value
func schema onlyfunc schema only 0x010x01
indexed view schema onlyindexed view schema only 0x010x01
proc schema onlyproc schema only 0x010x01
tabellatable 0x0C034FD1 - SQL Server 2005 (9.x)SQL Server 2005 (9.x) pubblicazioni compatibili con 0x0C034FD1: e versioni successive con snapshot in modalità nativa.0x0C034FD1 - SQL Server 2005 (9.x)SQL Server 2005 (9.x) and later compatible publications with a native mode snapshot.

0x08034FF1 - SQL Server 2005 (9.x)SQL Server 2005 (9.x) pubblicazioni compatibili con 0x08034FF1 e versioni successive con snapshot in modalità carattere.0x08034FF1 - SQL Server 2005 (9.x)SQL Server 2005 (9.x) and later compatible publications with a character mode snapshot.
view schema onlyview schema only 0x010x01

Nota

Se la pubblicazione supporta versioni precedenti di SQL ServerSQL Server , l'opzione dello schema predefinito per Table è 0x30034FF1.If the publication supports earlier versions of SQL ServerSQL Server, the default schema option for table is 0x30034FF1.

Tabella delle opzioni di schema valideValid Schema Option Table

Nella tabella seguente vengono descritti i valori consentiti schema_option a seconda del tipo di articolo.The following table describes the allowed values schema_option depending on article type.

Tipo di articoloArticle type Valori delle opzioni di schemaSchema option values
func schema onlyfunc schema only 0x01 e 0x20000x01 and 0x2000
indexed view schema onlyindexed view schema only 0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000e 0x2000000x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000, and 0x200000
proc schema onlyproc schema only 0x01 e 0x20000x01 and 0x2000
tabellatable Tutte le opzioni.All options.
view schema onlyview schema only 0x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000e 0x2000000x01, 0x040, 0x0100, 0x2000, 0x40000, 0x1000000, and 0x200000

EsempioExample

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

AutorizzazioniPermissions

È richiesta l'appartenenza al ruolo predefinito del server sysadmin o al ruolo predefinito del database db_owner .Requires membership in the sysadmin fixed server role or the db_owner fixed database role.

Vedere ancheSee Also

Definire un articolo Define an Article
Pubblicare dati e oggetti di database Publish Data and Database Objects
Replica colonne Identity Replicate Identity Columns
sp_changemergearticle ()Transact-SQL sp_changemergearticle (Transact-SQL)
sp_dropmergearticle ()Transact-SQL sp_dropmergearticle (Transact-SQL)
sp_helpmergearticle ()Transact-SQL sp_helpmergearticle (Transact-SQL)
Stored procedure per la replica (Transact-SQL)Replication Stored Procedures (Transact-SQL)