Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server e
Istanza gestita di SQL di Azure
Questo argomento descrive come gestire colonne di identità in SQL Server usando 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. La replica può gestire automaticamente gli intervalli di identità oppure è possibile scegliere di gestire manualmente gli intervalli di identità. Per informazioni sulle opzioni di gestione degli intervalli di valori Identity fornite dalla replica, vedere Replicare colonne Identity.
Consigli
Quando si pubblica una tabella in più di una pubblicazione, è necessario specificare le stesse opzioni di gestione dell'intervallo di valori Identity per entrambe le pubblicazioni. Per altre informazioni, vedere "Pubblicazione di tabelle in più di una pubblicazione" in Pubblicare dati e oggetti di database.
Per creare un numero a incremento automatico da usare in più tabelle o da chiamare dalle applicazioni senza fare riferimento ad alcuna tabella, vedere Numeri di sequenza.
Utilizzo di SQL Server Management Studio
Specificare un'opzione di gestione della colonna Identity nella scheda Proprietà della finestra di dialogo Proprietà articolo -<Articolo> della Creazione guidata Nuova pubblicazione. Per altre informazioni sull'uso di questa procedura guidata, vedere Creare una pubblicazione. Nella procedura 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 pubblicazione, la gestione degli intervalli di identità deve essere impostata su modalità manuale.
Modificare gli intervalli di identità e le soglie nella scheda Proprietà della finestra di dialogo Proprietà dell'articolo -<Articolo>, disponibile nella finestra di dialogo Proprietà della pubblicazione - <Pubblicazione>. Per ulteriori informazioni sull'accesso a questa finestra di dialogo, vedere View and Modify Publication Properties.
Per specificare un'opzione di gestione della colonna IDENTITY
Se nel server di pubblicazione è in esecuzione una versione di SQL Server precedente a SQL Server 2005 (9.x), 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 di identità.
Fare clic su Proprietà articoloe 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 che eseguono SQL Server 2005 (9.x) o versione successiva) oppure su True o False (per i server di pubblicazione che eseguono una versione di SQL Server precedente a SQL Server 2005 (9.x)).
Se nel passaggio 4 è stato selezionato Automatico o True , immettere i valori per le opzioni nella tabella che segue. Per altre informazioni su come usare queste impostazioni, vedere la sezione "Assegnazione degli intervalli di valori Identity" di Replicare colonne Identity.
Opzione valore Descrizione Dimensione dell'intervallo del publisher Valore intero per le dimensioni dell'intervallo, ad esempio 20000. Vedere la sezione "Assegnazione degli intervalli di valori Identity" di Replicare colonne Identity. Dimensione dell'intervallo di abbonati Valore intero per le dimensioni dell'intervallo, ad esempio 10000. Consultare la sezione "Assegnazione degli intervalli Identity" di Replica delle colonne Identity. Percentuale di soglia dell'intervallo Valore intero percentuale per la soglia dell'intervallo, ad esempio 90 è equivalente a 90%. Percentuale del totale dei valori Identity utilizzati in un nodo prima che venga assegnato un nuovo intervallo di valori Identity.
Nota: questo valore deve essere specificato, ma viene usato solo dai Sottoscrittori che usano sottoscrizioni ad aggiornamento in coda e dai Sottoscrittori per pubblicazioni di tipo merge che eseguono SQL Server Compact o una versione precedente di altre edizioni di SQL Server. Per altre informazioni, vedere la sezione "Assegnazione degli intervalli di valori Identity" di Replicare colonne Identity.Valore iniziale dell'intervallo successivo Valore intero. 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 massimo di identità Valore intero. Sola lettura. Il valore maggiore per la colonna Identity. Determinato dal tipo di dati di base della colonna. Incrementa Valore intero. 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. Seleziona 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à articoloe quindi su Imposta proprietà dell'articolo di tabella evidenziato.
Nella scheda Proprietà della finestra di dialogo Proprietà articolo - <Articolo>, nella sezione Gestione intervallo di valori Identity, immettere i valori di una o più delle proprietà seguenti: Dimensione intervallo dell'editore, Dimensione intervallo del sottoscrittore e Percentuale di soglia dell'intervallo.
Seleziona OK.
Fare clic su OK nella finestra di dialogo Proprietà pubblicazione - <Pubblicazione>.
Utilizzo di Transact-SQL
È possibile utilizzare le stored procedure di replica per specificare le opzioni di gestione degli intervalli di valori Identity quando viene creato un articolo.
Per abilitare la gestione automatica degli intervalli di identità durante la definizione di articoli per una pubblicazione transazionale
Nel server di pubblicazione, nel database 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_rangee la percentuale dei valori Identity totali utilizzata prima dell'assegnazione di un nuovo intervallo di valori Identity per @threshold. Per altre informazioni sulla definizione degli articoli, vedere Definire 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 identità quando si definiscono gli articoli per una pubblicazione transazionale
Nel server di pubblicazione, nel database di pubblicazione, eseguire sp_addarticle. Specificare il valore di manual per @identityrangemanagementoption. Per altre informazioni sulla definizione degli articoli, vedere Definire 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 degli intervalli per la gestione manuale degli intervalli di valori Identity nell'argomento Replica delle 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_rangee la percentuale dei valori Identity totali utilizzata prima dell'assegnazione di un nuovo intervallo di valori Identity per @threshold. Per altre informazioni sull'assegnazione di nuovi intervalli di valori Identity, vedere "Assegnazione degli intervalli di valori Identity" nell'argomento Replicare colonne Identity. Per altre informazioni sulla definizione degli articoli, vedere Definire 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 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 di identità del Server di pubblicazione non verranno definite come colonne di identità nel Sottoscrittore.
Per altre informazioni sulla definizione degli articoli, vedere Definire un articolo.
Assegnare intervalli alle colonne identity dell'articolo nel Sottoscrittore per evitare di generare conflitti nei Sottoscrittori aggiornabili.
Per modificare le impostazioni relative alla gestione automatica degli intervalli di identity per un articolo esistente in una pubblicazione snapshot o transazionale
Nel database di pubblicazione del server di pubblicazione, eseguire sp_helparticle e annotare 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 identità assegnati, eseguire sp_changearticle sul server di pubblicazione, nel database 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 alla quale vengono assegnati nuovi intervalli, eseguire sp_changearticle nel server di pubblicazione, nel database 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 server di pubblicazione, nel database di pubblicazione, eseguire sp_helpmergearticle e prendere nota del 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 identità assegnati, eseguire sp_changemergearticle nel server di pubblicazione, sul database 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 alla quale vengono assegnati nuovi intervalli, eseguire sp_changemergearticle nel Server di pubblicazione sul database di pubblicazione. Specificare il valore threshold per @property e il nuovo valore soglia per @value. Per altre informazioni sull'assegnazione di nuovi intervalli di valori Identity, vedere "Assegnazione degli intervalli di valori Identity" nell'argomento Replicare colonne Identity.
Per disabilitare la gestione automatica degli intervalli di identità, eseguire sp_changemergearticle nel database di pubblicazione del server di pubblicazione. Specificare un valore di identityrangemanagementoption per @property e manual o none per @value.