Verwalten von Identitätsspalten
Gilt für: SQL Server Azure SQL Managed Instance
In diesem Thema wird beschrieben, wie Identitätsspalten in SQL Server mithilfe von SQL Server Management Studio oder Transact-SQL verwaltet werden. Wenn Einfügungen von Abonnenten zurück auf den Verleger repliziert werden, müssen Identitätsspalten verwaltet werden, um zu verhindern, dass der gleiche Identitätswert sowohl dem Abonnenten als auch dem Verleger zugewiesen wird. Die Replikation kann Identitätsbereiche automatisch verwalten, oder Sie können sich dafür entscheiden, Identitätsbereiche manuell zu verwalten. Informationen über die von der Replikation zur Verfügung gestellten Verwaltungsoptionen für Identitätsbereiche finden Sie unter Replizieren von Identitätsspalten.
In diesem Thema
Vorbereitungen:
So verwalten Sie Identitätsspalten mit:
Vorbereitungen
Empfehlungen
Wird eine Tabelle in mehr als einer Veröffentlichung veröffentlicht, müssen Sie für diese Veröffentlichungen die gleichen Verwaltungsoptionen für Identitätsbereiche angeben. Weitere Informationen finden Sie unter „Veröffentlichen von Tabellen in mehreren Veröffentlichungen“ in Veröffentlichen von Daten und Datenbankobjekten.
Weitere Informationen zu einer automatisch inkrementierten Zahl, die in mehreren Tabellen verwendet oder aus Anwendungen aufgerufen werden kann, ohne dass auf eine Tabelle verwiesen wird, finden Sie unter Sequenznummern.
Verwendung von SQL Server Management Studio
Geben Sie im Assistenten für neue Veröffentlichung im Dialogfeld Artikeleigenschaften – <Artikel> auf der Registerkarte Eigenschaften eine Verwaltungsoption für Identitätsspalten an. Weitere Informationen zum Zugreifen auf diesen Assistenten finden Sie unter Erstellen einer Veröffentlichung. Führen Sie im Assistenten für neue Veröffentlichung folgende Aktionen aus:
Wenn Sie auf der Seite Veröffentlichungstyp die Option Mergeveröffentlichung oder Transaktionsveröffentlichung mit aktualisierbaren Abonnements auswählen, wählen Sie die automatische oder manuelle Identitätsbereichsverwaltung aus (automatisch, die Standardeinstellung, wird empfohlen). Nach dem Veröffentlichen der Tabelle kann die Eigenschaft nicht geändert werden. Es können jedoch andere, verbundene Eigenschaften geändert werden.
Wenn Sie andere Veröffentlichungstypen auswählen, legen Sie die manuelle Identitätsbereichsverwaltung fest.
Ändern Sie die Identitätsbereiche und Schwellenwerte im Dialogfeld Artikeleigenschaften - <Artikel> auf der Registerkarte Eigenschaften. Dieses Dialogfeld ist über das Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> verfügbar. Weitere Informationen zum Zugreifen auf dieses Dialogfeld finden Sie unter View and Modify Publication Properties.
So geben Sie eine Verwaltungsoption für Identitätsspalten an
Wenn auf dem Verleger eine Version von SQL Server ausgeführt wird, die älter als SQL Server 2005 (9.x) ist, wählen Sie im Assistenten für neue Veröffentlichung auf der Seite Veröffentlichungstyp die Option Mergeveröffentlichung oder Transaktionsveröffentlichung mit aktualisierbaren Abonnements aus.
Wählen Sie auf der Seite Artikel eine Tabelle mit einer Identitätsspalte aus.
Klicken Sie auf Artikeleigenschaftenund anschließend auf Eigenschaften des hervorgehobenen Artikels festlegen.
Legen Sie im Dialogfeld Artikeleigenschaften - <Artikel> auf der Registerkarte Eigenschaften im Abschnitt Identitätsbereichsverwaltung die Eigenschaft Identitätsbereiche automatisch verwalten auf Automatisch oder Manuell (bei Verlegern, auf denen SQL Server 2005 (9.x) oder höher ausgeführt wird) bzw. auf TRUE oder FALSE (bei Verlegern, auf denen eine Version von SQL Server ausgeführt wird, die älter als SQL Server 2005 (9.x) ist) fest.
Wenn Sie in Schritt 4 Automatisch oder Wahr ausgewählt haben, geben Sie Werte für die Optionen der folgenden Tabelle ein. Weitere Informationen zum Verwenden dieser Einstellungen finden Sie im Abschnitt „Zuweisen von Identitätsbereichen“ unter Replizieren von Identitätsspalten.
Option Wert Beschreibung Bereichsgröße auf dem Verleger Ganze Zahl für die Bereichsgröße (z. B. 20000). Weitere Informationen finden Sie im Abschnitt „Zuweisen von Identitätsbereichen“ von Replizieren von Identitätsspalten. Bereichsgröße auf dem Abonnenten Ganze Zahl für die Bereichsgröße (z. B. 10000). Weitere Informationen finden Sie im Abschnitt „Zuweisen von Identitätsbereichen“ von Replizieren von Identitätsspalten. Prozentsatz für Bereichsschwellenwert Ganze Zahl für Schwellenwert in Prozent (z. B. 90 entspricht 90 %) Der Prozentsatz der Identitätswerte, die in einem Knoten insgesamt verwendet werden, bevor ein neuer Identitätsbereich zugewiesen wird.
Hinweis: Der Wert muss angeben werden, er wird jedoch nur von Abonnenten verwendet, die Abonnements mit verzögertem Update über eine Warteschlange verwenden, und von Abonnenten für Mergeveröffentlichungen, auf denen SQL Server Compact oder frühere Versionen von anderen SQL Server-Editionen ausgeführt werden. Weitere Informationen finden Sie im Abschnitt „Zuweisen von Identitätsbereichen“ in Replizieren von Identitätsspalten.Anfangswert des nächsten Bereichs Wert für ganze Zahl. Schreibgeschützt. Der Wert, bei dem der nächste Bereich beginnt. Wenn der aktuelle Bereich z. B. 5001-6000 lautet, liegt dieser Wert bei 6001. Maximaler Identitätswert Wert für ganze Zahl. Schreibgeschützt. Der größte Wert für die Identitätsspalte. Er wird durch den Basisdatentyp der Spalte bestimmt. Increment Wert für ganze Zahl. Schreibgeschützt. Die Zahl, um die sich eine Identitätsspalte bei jeder Einfügung erhöhen oder verringern sollte: in der Regel auf 1 festgelegt. Wählen Sie OK aus.
So ändern Sie Identitätsbereiche und Schwellenwerte nach dem Veröffentlichen einer Tabelle
Wählen Sie auf der Seite Artikel im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> eine Tabelle mit einer Identitätsspalte aus.
Klicken Sie auf Artikeleigenschaftenund anschließend auf Eigenschaften des hervorgehobenen Artikels festlegen.
Geben Sie im Dialogfeld Artikeleigenschaften - <Artikel> auf der Registerkarte Eigenschaften im Abschnitt Identitätsbereichsverwaltung Werte für eine oder mehrere der folgenden Eigenschaften ein: Bereichsgröße auf dem Verleger, Bereichsgröße auf dem Abonnenten und Prozentsatz für Bereichsschwellenwert.
Wählen Sie OK aus.
Klicken Sie im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> auf OK.
Verwenden von Transact-SQL
Wenn ein Artikel erstellt wird, können Sie mithilfe gespeicherter Replikationsprozeduren Verwaltungsoptionen für Identitätsbereiche angeben.
So aktivieren Sie die automatische Identitätsbereichsverwaltung beim Definieren von Artikeln für eine Transaktionsveröffentlichung
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addarticleaus. Wenn die zu veröffentlichende Quelltabelle eine Identitätsspalten besitzt, geben Sie den Wert auto für @identityrangemanagementoption, den dem Verleger zugewiesenen Bereich von Identitätswerten für @pub_identity_rangeund den jedem Abonnenten zugewiesenen Bereich von Identitätswerten für @identity_rangean. Geben Sie für @thresholdden Prozentsatz der gesamten Identitätswerte an, die verwendet werden, bevor ein neuer Identitätsbereich zugewiesen wird. Weitere Informationen zum Definieren von Artikeln finden Sie unter Definieren eines Artikels.
Hinweis
Vergewissern Sie sich, dass der Datentyp der Identitätsspalte groß genug ist, um den gesamten, allen Abonnenten zugewiesenen Identitätsbereich zu unterstützen.
So deaktivieren Sie die automatische Identitätsbereichsverwaltung beim Definieren von Artikeln für eine Transaktionsveröffentlichung
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addarticleaus. Geben Sie den Wert manual für @identityrangemanagementoptionan. Weitere Informationen zum Definieren von Artikeln finden Sie unter Definieren eines Artikels.
Weisen Sie auf dem Abonnenten Identitätsartikelspalten Bereiche zu, um zu verhindern, dass für Updateabonnenten Konflikte auftreten. Weitere Informationen finden Sie im Abschnitt zum Zuweisen von Bereichen bei der manuellen Verwaltung von Identitätsbereichen im Thema Replizieren von Identitätsspalten.
So aktivieren Sie die automatische Identitätsbereichsverwaltung beim Definieren von Artikeln für eine Mergeveröffentlichung
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergearticleaus. Wenn die zu veröffentlichende Quelltabelle eine Identitätsspalten besitzt, geben Sie den Wert auto für @identityrangemanagementoption, den einem Serverabonnement zugewiesenen Bereich von Identitätswerten für @pub_identity_rangeund den dem Verleger und jedem Clientabonnement zugewiesenen Bereich von Identitätswerten für @identity_rangean. Geben Sie für @thresholdden Prozentsatz der gesamten Identitätswerte an, die verwendet werden, bevor ein neuer Identitätsbereich zugewiesen wird. Weitere Informationen dazu, wann neue Identitätsbereiche zugewiesen werden, finden Sie im Abschnitt zum Zuweisen von Identitätsbereichen im Thema Replizieren von Identitätsspalten. Weitere Informationen zum Definieren von Artikeln finden Sie unter Definieren eines Artikels.
Hinweis
Vergewissern Sie sich, dass der Datentyp der Identitätsspalte groß genug ist, um den gesamten, allen Abonnenten zugewiesenen Identitätsbereich zu unterstützen. Dies gilt besonders bei Abonnenten mit Serverabonnements.
So deaktivieren Sie die automatische Identitätsbereichsverwaltung beim Definieren von Artikeln für eine Mergeveröffentlichung
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergearticleaus. Geben Sie einen der folgenden Werte für @identityrangemanagementoptionan:
manual – Identitätsbereiche müssen manuell für Updateabonnenten zugewiesen werden.
none – Identitätsspalten auf dem Verleger werden auf dem Abonnenten nicht als Identitätsspalten definiert.
Weitere Informationen zum Definieren von Artikeln finden Sie unter Definieren eines Artikels.
Weisen Sie auf dem Abonnenten Identitätsartikelspalten Bereiche zu, um zu verhindern, dass für Updateabonnenten Konflikte auftreten.
So ändern Sie die Einstellungen für die automatische Identitätsbereichsverwaltung für einen vorhandenen Artikel in einer Momentaufnahme- oder Transaktionsveröffentlichung
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_helparticle aus, und achten Sie auf den Wert von identityrangemanagementoption im Resultset. Ist dieser Wert 0, ist die automatische Identitätsbereichsverwaltung nicht aktiviert.
Wenn der Wert von identityrangemanagementoption im Resultset 1ist, ändern Sie die Einstellungen wie folgt:
Um die zugewiesenen Identitätsbereiche zu ändern, führen Sie sp_changearticle auf dem Verleger für die Veröffentlichungsdatenbank aus. Geben Sie den Wert identity_range oder pub_identity_range für @property und den neuen Bereichswert für @valuean.
Um den Schwellenwert zu ändern, bei dessen Überschreiten neue Identitätsbereiche zugewiesen werden, führen Sie sp_changearticle auf dem Verleger für die Veröffentlichungsdatenbank aus. Geben Sie den Wert threshold für @property und den neuen Schwellenwert für @valuean.
So ändern Sie die Einstellungen für die automatische Identitätsbereichsverwaltung für einen vorhandenen Artikel in einer Mergeveröffentlichung
Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_helpmergearticle aus, und achten Sie auf den Wert von identity_support im Resultset. Ist dieser Wert 0, ist die automatische Identitätsbereichsverwaltung nicht aktiviert.
Wenn der Wert von identity_support im Resultset 1ist, ändern Sie die Einstellungen wie folgt:
Um die zugewiesenen Identitätsbereiche zu ändern, führen Sie sp_changemergearticle auf dem Verleger für die Veröffentlichungsdatenbank aus. Geben Sie den Wert identity_range oder pub_identity_range für @property und den neuen Bereichswert für @valuean.
Um den Schwellenwert zu ändern, bei dessen Überschreiten neue Identitätsbereiche zugewiesen werden, führen Sie sp_changemergearticle auf dem Verleger für die Veröffentlichungsdatenbank aus. Geben Sie den Wert threshold für @property und den neuen Schwellenwert für @valuean. Weitere Informationen dazu, wann neue Identitätsbereiche zugewiesen werden, finden Sie im Abschnitt zum Zuweisen von Identitätsbereichen im Thema Replizieren von Identitätsspalten.
Um die automatische Verwaltung von Identitätsbereichen zu deaktivieren, führen Sie sp_changemergearticle auf dem Verleger für die Veröffentlichungsdatenbank aus. Geben Sie den Wert identityrangemanagementoption für @property und entweder manual oder none für @valuean.