Identitätsspalten verwalten

Gilt für:SQL ServerAzure 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.

Empfehlungen

  • Wenn Sie eine Tabelle in mehr als einer Veröffentlichung veröffentlichen, müssen Sie für beide Veröffentlichungen dieselben Optionen für die Identitätsbereichsverwaltung angeben. Weitere Informationen finden Sie unter „Veröffentlichen von Tabellen in mehreren Veröffentlichungen“ in Veröffentlichen von Daten und Datenbankobjekten.

  • Zum Erstellen einer automatisch inkrementierten Nummer, die in mehreren Tabellen verwendet oder aus Anwendungen aufgerufen werden kann, ohne auf eine Tabelle zu verweisen, siehe 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ätsintervalle und Schwellenwerte auf der Registerkarte > von >, die im Dialogfeld Publikationseigenschaften - Publikation verfügbar ist. 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

  1. Wenn auf dem Publisher eine Version von SQL Server verwendet wird, die älter ist als SQL Server 2005 (9.x), wählen Sie auf der Seite Veröffentlichungstyp des Assistenten für neue Veröffentlichungen die Option Mergepublikation oder Transaktionsveröffentlichung mit aktualisierbaren Abonnements aus.

  2. Wählen Sie auf der Seite Artikel eine Tabelle mit einer Identitätsspalte aus.

  3. Klicken Sie auf Artikeleigenschaften und anschließend auf Eigenschaften des hervorgehobenen Tabellenartikels festlegen.

  4. Legen Sie auf der Registerkarte > des Dialogfelds Artikeleigenschaften - Artikel im Abschnitt Identitätsbereichsverwaltung die Eigenschaft Identitätsbereiche automatisch verwalten auf Automatisch oder Manuell fest (für Verleger, auf denen SQL Server 2005 (9.x) oder höher ausgeführt wird), bzw. auf True oder False (für Verleger, auf denen eine SQL Server-Version vor SQL Server 2005 (9.x) ausgeführt wird).

  5. 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
    Größe des Publisher-Bereichs 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.
    Teilnehmerbereichsgröße 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.
    Startwert des nächsten Wertebereichs Ganzzahlwert. 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 Ganzzahlwert. Schreibgeschützt. Der größte Wert für die Identitätsspalte. Er wird durch den Basisdatentyp der Spalte bestimmt.
    Erhöhen Ganzzahlwert. Schreibgeschützt. Der Wert, um den die Zahl in der Identitätsspalte bei jedem Einfügen erhöht oder verringert werden soll: normalerweise auf 1 festgelegt.
  6. Wählen Sie OK aus.

So ändern Sie Identitätsbereiche und Schwellenwerte nach dem Veröffentlichen einer Tabelle

  1. Wählen Sie auf der Seite Artikel im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> eine Tabelle mit einer Identitätsspalte aus.

  2. Klicken Sie auf Artikeleigenschaften und anschließend auf Eigenschaften des hervorgehobenen Tabellenartikels festlegen.

  3. Geben Sie auf der Registerkarte > des Dialogfelds Artikeleigenschaften - Artikel im Abschnitt Identitätsbereichsverwaltung Werte für eine oder mehrere der folgenden Eigenschaften ein: Bereichsgröße des Verlegers, Bereichsgröße des Abonnenten und Prozentsatz des Bereichsschwellenwerts.

  4. Wählen Sie OK aus.

  5. Klicken Sie im Dialogfeld Publication Properties - Publication 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

  1. Führen Sie beim Verleger in der Publikationsdatenbank sp_addarticle aus. 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

  1. Führen Sie beim Verleger in der Publikationsdatenbank sp_addarticle aus. Geben Sie den Wert manual für @identityrangemanagementoptionan. Weitere Informationen zum Definieren von Artikeln finden Sie unter Definieren eines Artikels.

  2. 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

  1. Führen Sie beim Verleger in der Veröffentlichungsdatenbank sp_addmergearticle aus. 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

  1. Führen Sie beim Verleger in der Veröffentlichungsdatenbank sp_addmergearticle aus. Geben Sie einen der folgenden Werte für @identityrangemanagementoptionan:

    • manual – Identitätsbereiche müssen für die Aktualisierung von Abonnenten manuell zugewiesen werden.

    • Keine - Identitätsspalten im Publisher werden auf dem Abonnenten nicht als Identitätsspalten definiert.

    Weitere Informationen zum Definieren von Artikeln finden Sie unter Definieren eines Artikels.

  2. 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

  1. 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.

  2. Wenn der Wert von identityrangemanagementoption im Resultset 1ist, ändern Sie die Einstellungen wie folgt:

    • Um die zugewiesenen Identitybereiche zu ändern, führen Sie sp_changearticle beim Publisher in der 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 dem neue Bereiche zugewiesen werden, führen Sie sp_changearticle beim Publisher in der Publikationsdatenbank 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

  1. 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.

  2. Wenn der Wert von identity_support im Resultset 1ist, ändern Sie die Einstellungen wie folgt:

    • Um die zugewiesenen IDENTITY-Bereiche zu ändern, führen Sie sp_changemergearticle beim Publisher in der Publikationsdatenbank 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 dem neue Bereiche zugewiesen werden, führen Sie sp_changemergearticle beim Publisher in der 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 Identitätsbereichsverwaltung zu deaktivieren, führen Sie sp_changemergearticle beim Publisher in der Veröffentlichungsdatenbank aus. Geben Sie den Wert identityrangemanagementoption für @property und entweder manual oder none für @valuean.