Gestione delle colonne Identity
In questo argomento viene descritto come gestire le colonne Identity in SQL Server 2012 tramite SQL Server Management Studio o Transact-SQL. 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. Per informazioni sulle opzioni di gestione degli intervalli di valori Identity fornite dalla replica, vedere Replica di colonne Identity.
Contenuto dell'argomento
Prima di iniziare:
Indicazioni
Per gestire le colonne Identity, utilizzando:
SQL Server Management Studio
Transact-SQL
Prima di iniziare
Indicazioni
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 creare un numero a incremento automatico da utilizzare in più tabelle o da chiamare dalle applicazioni senza fare riferimento ad alcuna tabella, vedere Numeri di sequenza.
[Top]
Utilizzo di SQL Server Management Studio
Specificare un'opzione per la gestione delle colonne Identity nella scheda Proprietà della finestra di dialogo Proprietà articolo - <Articolo> della Creazione guidata nuova pubblicazione. Per ulteriori informazioni sull'utilizzo di questa procedura guidata, vedere Creazione di una pubblicazione. Nella Creazione guidata nuova pubblicazione:
Se si seleziona Pubblicazione di tipo merge o Pubblicazione transazionale con sottoscrizioni aggiornabili nella pagina Tipo di pubblicazione, specificare se si desidera utilizzare la gestione automatica o manuale di intervalli di valori Identity. È consigliabile la gestione automatica, che è l'opzione predefinita. Dopo la pubblicazione della tabella la proprietà non può più essere modificata, mentre è possibile modificare altre proprietà correlate.
Se si selezionano altri tipi di pubblicazioni, è necessario impostare la gestione degli intervalli di valori Identity su manuale.
Modificare le soglie e gli intervalli di valori Identity nella scheda Proprietà della finestra di dialogo Proprietà articolo - <Articolo>, che è disponibile nella finestra di dialogo Proprietà pubblicazione - <Pubblicazione>. Per ulteriori informazioni sull'accesso a questa finestra di dialogo, vedere Visualizzazione e modifica delle proprietà della pubblicazione.
Per specificare un'opzione per la gestione di colonne Identity
Se nel server di pubblicazione è in esecuzione una versione di SQL Server precedente a SQL Server 2005, nella pagina Tipo di pubblicazione della Creazione guidata nuova pubblicazione selezionare Pubblicazione di tipo merge o Pubblicazione transazionale con sottoscrizioni aggiornabili.
Nella pagina Articoli selezionare una tabella con una colonna Identity.
Fare clic su Proprietà articolo, quindi su Imposta proprietà dell'articolo di tabella evidenziato.
Nella scheda Proprietà della finestra di dialogo Proprietà articolo- <Articolo>, nella sezione Gestione intervalli di valori Identity, impostare la proprietà Gestisci automaticamente gli intervalli di valori Identity su Automatico o Manuale (per i server di pubblicazione in cui è in esecuzione SQL Server 2005 o versione successiva) oppure True o False (per i server di pubblicazione in cui è in esecuzione una versione di SQL Server precedente a SQL Server 2005).
Se nel passaggio 4 è stato selezionato Automatico o True, immettere i valori per le opzioni nella tabella che segue. Per ulteriori informazioni su come utilizzare queste impostazioni, vedere la sezione relativa all'assegnazione di intervalli di valori Identity in Replica di colonne Identity.
Opzione
Valore
Descrizione
Dimensioni intervallo server di pubblicazione
Valore intero per le dimensioni dell'intervallo, ad esempio 20000.
Vedere la sezione relativa all'assegnazione degli intervalli di valori Identity in Replica di colonne Identity.
Dimensioni intervallo Sottoscrittore
Valore intero per le dimensioni dell'intervallo, ad esempio 10000.
Vedere la sezione relativa all'assegnazione degli intervalli di valori Identity in Replica di colonne Identity.
Percentuale soglia intervallo
Valore intero percentuale per la soglia dell'intervallo, ad esempio 90 è equivalente a 90%.
Percentuale dei valori Identity totali utilizzati in corrispondenza di un nodo prima dell'assegnazione di un nuovo intervallo di valori Identity.
[!NOTA]
Questo valore deve essere specificato, ma viene utilizzato solo dai Sottoscrittori che utilizzano sottoscrizioni ad aggiornamento in coda e dai Sottoscrittori per pubblicazioni di tipo merge in cui è in esecuzione SQL Server Compact o una versione precedente di altre edizioni di SQL Server. Per ulteriori informazioni, vedere la sezione relativa all'assegnazione degli intervalli di valori Identity in Replica di colonne Identity.
Valore iniziale intervallo successivo
Valore intero. Di sola lettura.
Il valore in corrispondenza del quale inizierà l'intervallo successivo. Ad esempio, se l'intervallo corrente è 5001-6000, questo valore sarà 6001.
Valore Identity massimo
Valore intero. Di sola lettura.
Il valore maggiore per la colonna Identity. Determinato dal tipo di dati di base della colonna.
Incremento valore Identity
Valore intero. Di sola lettura.
La quantità in base alla quale il numero nella colonna Identity deve aumentare o diminuire per ciascun inserimento: in genere è impostata su 1.
Fare clic su OK.
Per modificare le soglie e gli intervalli di valori Identity dopo la pubblicazione di una tabella
Nella pagina Articoli della finestra di dialogo Proprietà pubblicazione - <Pubblicazione> selezionare una tabella con una colonna Identity.
Fare clic su Proprietà articolo, quindi su Imposta proprietà dell'articolo di tabella evidenziato.
Nella scheda Proprietà della finestra di dialogo Proprietà articoli - <Articolo>, nella sezione Gestione intervalli di valori Identity, immettere i valori per una o più delle proprietà seguenti: Dimensioni intervallo server di pubblicazione, Dimensioni intervallo Sottoscrittore e Percentuale soglia intervallo.
Fare clic su OK.
Fare clic su OK nella finestra di dialogo Proprietà pubblicazione - <Pubblicazione>.
[Top]
Utilizzo di Transact-SQL
È possibile utilizzare stored procedure di replica per specificare le opzioni di gestione degli intervalli di valori Identity durante la creazione di un articolo.
Per abilitare 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 Definizione di un articolo.
[!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 disabilitare 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. Specificare il valore manual per @identityrangemanagementoption. Per ulteriori informazioni sulla definizione degli articoli, vedere Definizione di un articolo.
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 Definizione di un articolo.
[!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 disabilitare 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. 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 Definizione di un articolo.
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
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.
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 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
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.
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 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 disabilitare 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.
[Top]
Vedere anche
Concetti
Replica transazionale peer-to-peer
Concetti di base relativi alle stored procedure del sistema di replica