Procedura: Gestione delle colonne Identity (programmazione Transact-SQL della replica)

Quando gli inserimenti del Sottoscrittore vengono replicati nel server di pubblicazione, è necessario gestire le colonne Identity in modo da evitare l'assegnazione dello stesso valore Identity sia al Sottoscrittore che al server di pubblicazione. È possibile gestire automaticamente intervalli di valori Identity tramite la replica oppure scegliere di gestirli manualmente. È possibile utilizzare stored procedure di replica per specificare le opzioni di gestione degli intervalli di valori Identity durante la creazione di un articolo. Per informazioni sulle opzioni di gestione degli intervalli di valori Identity fornite dalla replica, vedere Replica di colonne Identity.

[!NOTA]

Quando si pubblica una tabella in più di una pubblicazione, è necessario specificare le stesse opzioni di gestione degli intervalli di valori Identity per entrambi le pubblicazioni. Per ulteriori informazioni, vedere la sezione relativa alla pubblicazione di tabelle in più pubblicazioni nell'argomento Pubblicazione di dati e oggetti di database.

Per attivare la gestione automatica degli intervalli di valori Identity durante la definizione di articoli per una pubblicazione transazionale

  • Nel database di pubblicazione del server di pubblicazione eseguire sp_addarticle. Se la tabella di origine da pubblicare include una colonna Identity, specificare il valore auto per @identityrangemanagementoption, l'intervallo di valori Identity assegnati al server di pubblicazione per @pub_identity_range, l'intervallo di valori Identity assegnato a ciascun Sottoscrittore per @identity_range e la percentuale dei valori Identity totali utilizzata prima dell'assegnazione di un nuovo intervallo di valori Identity per @threshold. Per ulteriori informazioni sulla definizione degli articoli, vedere Procedura: Definizione di un articolo (programmazione Transact-SQL della replica).

    [!NOTA]

    Assicurarsi che il tipo di dati della colonna Identity sia sufficiente per supportare l'intervallo totale di valori Identity da assegnare a tutti i Sottoscrittori.

Per disattivare la gestione automatica degli intervalli di valori Identity durante la definizione di articoli per una pubblicazione transazionale

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_addarticle. Specificare il valore manual per @identityrangemanagementoption. Per ulteriori informazioni sulla definizione degli articoli, vedere Procedura: Definizione di un articolo (programmazione Transact-SQL della replica).

  2. Assegnare intervalli a colonne Identity dell'articolo nel Sottoscrittore per evitare di generare conflitti durante l'aggiornamento dei Sottoscrittori. Per ulteriori informazioni, vedere la sezione relativa all'assegnazione di intervalli per la gestione manuale degli intervalli di valori Identity in Replica di colonne Identity.

Per attivare la gestione automatica degli intervalli di valori Identity durante la definizione di articoli per una pubblicazione di tipo merge

  • Nel database di pubblicazione del server di pubblicazione eseguire sp_addmergearticle. Se la tabella di origine da pubblicare include una colonna Identity, specificare il valore auto per @identityrangemanagementoption, l'intervallo di valori Identity assegnati a una sottoscrizione server per @pub_identity_range, l'intervallo di valori Identity assegnato al server di pubblicazione e a ogni sottoscrizione client per @identity_range e la percentuale dei valori Identity totali utilizzata prima dell'assegnazione di un nuovo intervallo di valori Identity per @threshold. Per ulteriori informazioni sull'assegnazione di nuovi intervalli di valori Identity, vedere la sezione relativa nell'argomento Replica di colonne Identity. Per ulteriori informazioni sulla definizione degli articoli, vedere Procedura: Definizione di un articolo (programmazione Transact-SQL della replica).

    [!NOTA]

    Assicurarsi che il tipo di dati della colonna Identity sia sufficiente per supportare l'intervallo totale di valori Identity da assegnare a tutti i Sottoscrittori, in particolare ai Sottoscrittori con sottoscrizioni server.

Per disattivare la gestione automatica degli intervalli di valori Identity durante la definizione di articoli per una pubblicazione di tipo merge

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_addmergearticle. Specificare uno dei valori seguenti per @identityrangemanagementoption:

    • manual: per aggiornare i Sottoscrittori, gli intervalli di valori Identity devono essere assegnati manualmente.

    • none: le colonne Identity del server di pubblicazione non verranno definite come tali nel Sottoscrittore.

    Per ulteriori informazioni sulla definizione degli articoli, vedere Procedura: Definizione di un articolo (programmazione Transact-SQL della replica).

  2. Assegnare intervalli a colonne Identity dell'articolo nel Sottoscrittore per evitare di generare conflitti durante l'aggiornamento dei Sottoscrittori.

Per modificare le impostazioni relative alla gestione automatica degli intervalli di valori Identity per un articolo esistente di una pubblicazione snapshot o transazionale

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_helparticle e notare il valore di identityrangemanagementoption nel set di risultati. Se questo valore è 0, la gestione automatica degli intervalli di valori Identity non è attivata.

  2. Se il valore di identityrangemanagementoption nel set di risultati è 1, modificare le impostazioni nel modo seguente:

    • Per modificare gli intervalli di valori Identity assegnati, eseguire sp_changearticle nel database di pubblicazione del server di pubblicazione. Specificare il valore identity_range o pub_identity_range per @property e il nuovo valore dell'intervallo per @value.

    • Per modificare la soglia di assegnazione di nuovi intervalli, eseguire sp_changearticle nel database di pubblicazione del server di pubblicazione. Specificare il valore threshold per @property e il nuovo valore di soglia per @value.

Per modificare le impostazioni relative alla gestione automatica degli intervalli di valori Identity per un articolo esistente di una pubblicazione di tipo merge

  1. Nel database di pubblicazione del server di pubblicazione eseguire sp_helpmergearticle e notare il valore di identity_support nel set di risultati. Se questo valore è 0, la gestione automatica degli intervalli di valori Identity non è attivata.

  2. Se il valore di identity_support nel set di risultati è 1, modificare le impostazioni nel modo seguente:

    • Per modificare gli intervalli di valori Identity assegnati, eseguire sp_changemergearticle nel database di pubblicazione del server di pubblicazione. Specificare il valore identity_range o pub_identity_range per @property e il nuovo valore dell'intervallo per @value.

    • Per modificare la soglia di assegnazione di nuovi intervalli, eseguire sp_changemergearticle nel database di pubblicazione del server di pubblicazione. Specificare il valore threshold per @property e il nuovo valore di soglia per @value. Per ulteriori informazioni sul'assegnazione di nuovi intervalli di valori Identity, vedere la sezione relativa nell'argomento Replica di colonne Identity.

    • Per disattivare la gestione automatica degli intervalli di valori Identity, eseguire sp_changemergearticle nel database di pubblicazione del server di pubblicazione. Specificare il valore identityrangemanagementoption per @property e manual o none per @value.