Verwalten von IdentitätsspaltenManage Identity Columns

Gilt für: JaSQL Server JaAzure SQL-Datenbank (nur verwaltete Instanz) NeinAzure Synapse Analytics (SQL DW) NeinParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

In diesem Thema wird beschrieben, wie Identitätsspalten in SQL Server 2019 (15.x)SQL Server 2019 (15.x) mit SQL Server Management StudioSQL Server Management Studio oder Transact-SQLTransact-SQLverwaltet werden.This topic describes how to manage identity columns in SQL Server 2019 (15.x)SQL Server 2019 (15.x) by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL. 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.When Subscriber inserts are replicated back to the Publisher, identity columns must be managed to avoid assignment of the same identity value at both the Subscriber and Publisher. Die Replikation kann Identitätsbereiche automatisch verwalten, oder Sie können sich dafür entscheiden, Identitätsbereiche manuell zu verwalten.Replication can manage identity ranges automatically or you can choose to manually handle identity range management. Informationen über die von der Replikation zur Verfügung gestellten Verwaltungsoptionen für Identitätsbereiche finden Sie unter Replizieren von Identitätsspalten.For information about the identity range management options provided by replication, see Replicate Identity Columns.

In diesem ThemaIn This Topic

VorbereitungenBefore You Begin

EmpfehlungenRecommendations

  • 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.When publishing a table in more than one publication, you must specify the same identity range management options for both publications. Weitere Informationen finden Sie unter „Veröffentlichen von Tabellen in mehreren Veröffentlichungen“ in Veröffentlichen von Daten und Datenbankobjekten.For more information, see "Publishing Tables in More Than One Publication" in Publish Data and Database Objects.

  • 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.To create an automatically incrementing number that can be used in multiple tables or that can be called from applications without referencing any table, see Sequence Numbers.

Verwenden von SQL Server Management StudioUsing SQL Server Management Studio

Geben Sie im Assistenten für neue Veröffentlichung im Dialogfeld Artikeleigenschaften – <Artikel> auf der Registerkarte Properties eine Verwaltungsoption für Identitätsspalten an.Specify an identity column management option on the Properties tab of the Article Properties -<Article> dialog box of the New Publication Wizard. Weitere Informationen zum Zugreifen auf diesen Assistenten finden Sie unter Erstellen einer Veröffentlichung.For more information about using this wizard, see Create a Publication. Führen Sie im Assistenten für neue Veröffentlichung folgende Aktionen aus:In the New Publication Wizard:

  • 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).If you select Merge publication or Transactional publication with updating subscriptions on the Publication Type page, select automatic or manual identity range management (automatic, the default, is recommended). Nach dem Veröffentlichen der Tabelle kann die Eigenschaft nicht geändert werden. Es können jedoch andere, verbundene Eigenschaften geändert werden.After the table is published, the property cannot be modified, but other related properties can be modified.

  • Wenn Sie andere Veröffentlichungstypen auswählen, legen Sie die manuelle Identitätsbereichsverwaltung fest.If you select other publication types, identity range management should be set to manual.

Ä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.Modify identity ranges and thresholds on the Properties tab of the Article Properties -<Article>, which is available in the Publication Properties - <Publication> dialog box. Weitere Informationen zum Zugreifen auf dieses Dialogfeld finden Sie unter View and Modify Publication Properties.For more information about accessing this dialog box, see View and Modify Publication Properties.

So geben Sie eine Verwaltungsoption für Identitätsspalten anTo specify an identity column management option

  1. Wenn auf dem Verleger eine Version von SQL ServerSQL Server ausgeführt wird, die älter als SQL Server 2005 (9.x)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 Abonnementsaus.If the Publisher is running a version of SQL ServerSQL Server prior to SQL Server 2005 (9.x)SQL Server 2005 (9.x), on the Publication Type page of the New Publication Wizard, select Merge publication or Transactional publication with updating subscriptions.

  2. Wählen Sie auf der Seite Artikel eine Tabelle mit einer Identitätsspalte aus.On the Articles page, select a table with an identity column.

  3. Klicken Sie auf Artikeleigenschaftenund anschließend auf Eigenschaften des hervorgehobenen Artikels festlegen.Click Article Properties, and then click Set Properties of Highlighted Table Article.

  4. 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)SQL Server 2005 (9.x) oder höher ausgeführt wird) oder auf TRUE oder FALSE (bei Verlegern, auf denen eine Version von SQL ServerSQL Server ausgeführt wird, die älter als SQL Server 2005 (9.x)SQL Server 2005 (9.x) ist) fest.On the Properties tab of the Article Properties - <Article> dialog box, in the Identity Range Management section, set the Automatically manage identity ranges property to Automatic or Manual (for Publishers running SQL Server 2005 (9.x)SQL Server 2005 (9.x) or later), or True or False (for Publishers running a version of SQL ServerSQL Server prior to SQL Server 2005 (9.x)SQL Server 2005 (9.x)).

  5. Wenn Sie in Schritt 4 Automatisch oder Wahr ausgewählt haben, geben Sie Werte für die Optionen der folgenden Tabelle ein.If you selected Automatic or True in step 4, enter values for the options in the following table. Weitere Informationen zum Verwenden dieser Einstellungen finden Sie im Abschnitt „Zuweisen von Identitätsbereichen“ unter Replizieren von Identitätsspalten.For more information on how these settings are used, see the "Assigning Identity Ranges" section of Replicate Identity Columns.

    OptionOption valueValue BeschreibungDescription
    Bereichsgröße auf dem VerlegerPublisher range size Ganze Zahl für die Bereichsgröße (z. B. 20000).Integer value for range size (for example, 20000). Weitere Informationen finden Sie im Abschnitt „Zuweisen von Identitätsbereichen“ von Replizieren von Identitätsspalten.See the "Assigning Identity Ranges" section of Replicate Identity Columns.
    Bereichsgröße auf dem AbonnentenSubscriber range size Ganze Zahl für die Bereichsgröße (z. B. 10000).Integer value for range size (for example, 10000). Weitere Informationen finden Sie im Abschnitt „Zuweisen von Identitätsbereichen“ von Replizieren von Identitätsspalten.See the "Assigning Identity Ranges" section of Replicate Identity Columns.
    Prozentsatz für BereichsschwellenwertRange threshold percentage Ganze Zahl für Schwellenwert in Prozent (z. B. 90 entspricht 90 %)Integer value for percent threshold (for example, 90 is equivalent to 90 percent). Der Prozentsatz der Identitätswerte, die in einem Knoten insgesamt verwendet werden, bevor ein neuer Identitätsbereich zugewiesen wird.Percent of total identity values used at a node before a new identity range is assigned.



    Hinweis: Dieser Wert muss angegeben werden, aber er wird nur verwendet von: Abonnenten, die Abonnements mit verzögertem Update über eine Warteschlange verwenden, und von Abonnenten für Mergeveröffentlichungen, auf denen SQL Server CompactSQL Server Compact oder frühere Versionen von anderen SQL Server-Editionen ausgeführt werden.Note: This value must be specified, but it is only used by: Subscribers using queued updating subscriptions; and Subscribers to merge publications running SQL Server CompactSQL Server Compact or previous versions of other SQL Server editions. Weitere Informationen finden Sie im Abschnitt „Zuweisen von Identitätsbereichen“ in Replizieren von Identitätsspalten.For more information, see the "Assigning Identity Ranges" section of Replicate Identity Columns.
    Anfangswert des nächsten BereichsNext range starting value Wert für ganze Zahl.Integer value. Schreibgeschützt.Read-only. Der Wert, bei dem der nächste Bereich beginnt.The value at which the next range will start. Wenn der aktuelle Bereich z. B. 5001-6000 lautet, liegt dieser Wert bei 6001.For example, if the current range is 5001-6000, this value will be 6001.
    Maximaler IdentitätswertMaximum identity value Wert für ganze Zahl.Integer value. Schreibgeschützt.Read-only. Der größte Wert für die Identitätsspalte.The largest value for the identity column. Er wird durch den Basisdatentyp der Spalte bestimmt.Determined by the base data type of the column.
    IncrementIncrement Wert für ganze Zahl.Integer value. Schreibgeschützt.Read-only. Die Zahl, um die sich eine Identitätsspalte bei jeder Einfügung erhöhen oder verringern sollte: in der Regel auf 1 festgelegt.The amount by which the number in the identity column should increase or decrease for each insert: typically set to 1.
  6. Klicken Sie auf OK.Click OK.

So ändern Sie Identitätsbereiche und Schwellenwerte nach dem Veröffentlichen einer TabelleTo modify identity ranges and thresholds after a table is published

  1. Wählen Sie auf der Seite Artikel im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> eine Tabelle mit einer Identitätsspalte aus.On the Articles page of the Publication Properties - <Publication> dialog box, select a table with an identity column.

  2. Klicken Sie auf Artikeleigenschaftenund anschließend auf Eigenschaften des hervorgehobenen Artikels festlegen.Click Article Properties, and then click Set Properties of Highlighted Table Article.

  3. 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.On the Properties tab of the Article Properties - <Article> dialog box, in the Identity Range Management section, enter values for one or more of the following properties: Publisher range size, Subscriber range size, and Range threshold percentage.

  4. Klicken Sie auf OK.Click OK.

  5. Klicken Sie im Dialogfeld Veröffentlichungseigenschaften - <Veröffentlichung> auf OK.Click OK on the Publication Properties - <Publication> dialog box.

Verwenden von Transact-SQLUsing Transact-SQL

Wenn ein Artikel erstellt wird, können Sie mithilfe gespeicherter Replikationsprozeduren Verwaltungsoptionen für Identitätsbereiche angeben.You can use replication stored procedures to specify identity range management options when an article is created.

So aktivieren Sie die automatische Identitätsbereichsverwaltung beim Definieren von Artikeln für eine TransaktionsveröffentlichungTo enable automatic identity range management when defining articles for a transactional publication

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addarticleaus.At the Publisher on the publication database, execute sp_addarticle. Wenn die zu veröffentlichende Quelltabelle eine Identitätsspalte besitzt, geben Sie für @identityrangemanagementoption den Wert auto, für @pub_identity_range den dem Verleger zugewiesenen Bereich von Identitätswerten und für @identity_range den jedem Abonnenten zugewiesenen Bereich von Identitätswerten an. Geben Sie für @threshold den Prozentsatz der gesamten Identitätswerte an, die verwendet werden, bevor ein neuer Identitätsbereich zugewiesen wird.If the source table being published has an identity column, specify a value of auto for @identityrangemanagementoption, the range of identity values assigned to the Publisher for @pub_identity_range, the range of identity values assigned to each Subscribers for @identity_range, and the percent of total identity values used before a new identity range is assigned for @threshold. Weitere Informationen zum Definieren von Artikeln finden Sie unter Definieren eines Artikels.For more information about defining articles, see Define an Article.

    Hinweis

    Vergewissern Sie sich, dass der Datentyp der Identitätsspalte groß genug ist, um den gesamten, allen Abonnenten zugewiesenen Identitätsbereich zu unterstützen.Ensure that the data type of the identity column is large enough to support the total range of identities being assigned to all Subscribers.

So deaktivieren Sie die automatische Identitätsbereichsverwaltung beim Definieren von Artikeln für eine TransaktionsveröffentlichungTo disable automatic identity range management when defining articles for a transactional publication

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addarticleaus.At the Publisher on the publication database, execute sp_addarticle. Geben Sie für @identityrangemanagementoption den Wert manual an.Specify a value of manual for @identityrangemanagementoption. Weitere Informationen zum Definieren von Artikeln finden Sie unter Definieren eines Artikels.For more information about defining articles, see Define an Article.

  2. Weisen Sie auf dem Abonnenten Identitätsartikelspalten Bereiche zu, um zu verhindern, dass für Updateabonnenten Konflikte auftreten.Assign ranges to identity article columns at the Subscriber to avoid generating conflicts for updating Subscribers. Weitere Informationen finden Sie im Abschnitt zum Zuweisen von Bereichen bei der manuellen Verwaltung von Identitätsbereichen im Thema Replizieren von Identitätsspalten.For more information, see the section on assigning ranges for manual identity range management in the topic Replicate Identity Columns.

So aktivieren Sie die automatische Identitätsbereichsverwaltung beim Definieren von Artikeln für eine MergeveröffentlichungTo enable automatic identity range management when defining articles for a merge publication

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergearticleaus.At the Publisher on the publication database, execute sp_addmergearticle. Wenn die zu veröffentlichende Quelltabelle eine Identitätsspalte besitzt, geben Sie für @identityrangemanagementoption den Wert auto, für @pub_identity_range den einem Serverabonnement zugewiesenen Bereich von Identitätswerten und für @identity_range den dem Verleger und jedem Clientabonnement zugewiesenen Bereich von Identitätswerten an. Geben Sie für @threshold den Prozentsatz der gesamten Identitätswerte an, die verwendet werden, bevor ein neuer Identitätsbereich zugewiesen wird.If the source table being published has an identity column, specify a value of auto for @identityrangemanagementoption, the range of identity values assigned to a server subscription for @pub_identity_range, the range of identity values assigned to the Publisher and each client subscription for @identity_range, and the percent of total identity values used before a new identity range is assigned for @threshold. Weitere Informationen dazu, wann neue Identitätsbereiche zugewiesen werden, finden Sie im Abschnitt zum Zuweisen von Identitätsbereichen im Thema Replizieren von Identitätsspalten.For more information on when new identity ranges are assigned, see Assigning Identity Ranges in the topic Replicate Identity Columns. Weitere Informationen zum Definieren von Artikeln finden Sie unter Definieren eines Artikels.For more information about defining articles, see Define an Article.

    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.Ensure that the data type of the identity column is large enough to support the total range of identities being assigned to all Subscribers, particularly for Subscribers with server subscriptions.

So deaktivieren Sie die automatische Identitätsbereichsverwaltung beim Definieren von Artikeln für eine MergeveröffentlichungTo disable automatic identity range management when defining articles for a merge publication

  1. Führen Sie auf dem Verleger für die Veröffentlichungsdatenbank sp_addmergearticleaus.At the Publisher on the publication database, execute sp_addmergearticle. Geben Sie für @identityrangemanagementoption einen der folgenden Werte an:Specify one of the following values for @identityrangemanagementoption:

    • manual – Identitätsbereiche müssen manuell für Updateabonnenten zugewiesen werden.manual - Identity ranges must be assigned manually for updating Subscribers.

    • none – Identitätsspalten auf dem Verleger werden auf dem Abonnenten nicht als Identitätsspalten definiert.none - Identity columns at the Publisher will not be defined as identity columns at the Subscriber.

    Weitere Informationen zum Definieren von Artikeln finden Sie unter Definieren eines Artikels.For more information about defining articles, see Define an Article.

  2. Weisen Sie auf dem Abonnenten Identitätsartikelspalten Bereiche zu, um zu verhindern, dass für Updateabonnenten Konflikte auftreten.Assign ranges to identity article columns at the Subscriber to avoid generating conflicts for updating Subscribers.

So ändern Sie die Einstellungen für die automatische Identitätsbereichsverwaltung für einen vorhandenen Artikel in einer Momentaufnahme- oder TransaktionsveröffentlichungTo change automatic identity range management settings for an existing article in a snapshot or transactional publication

  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.At the Publisher on the publication database, execute sp_helparticle and note the value of identityrangemanagementoption in the result set. Ist dieser Wert 0, ist die automatische Identitätsbereichsverwaltung nicht aktiviert.If this value is 0, automatic identity range management is not enabled.

  2. Wenn der Wert von identityrangemanagementoption im Resultset 1ist, ändern Sie die Einstellungen wie folgt:If the value of identityrangemanagementoption in the result set is 1, change the settings as follows:

    • Um die zugewiesenen Identitätsbereiche zu ändern, führen Sie sp_changearticle auf dem Verleger für die Veröffentlichungsdatenbank aus.To change the assigned identity ranges, execute sp_changearticle at the Publisher on the publication database. Geben Sie für @property den Wert identity_range oder pub_identity_range und für @value den neuen Bereichswert an.Specify a value of identity_range or pub_identity_range for @property and the new range value for @value.

    • 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.To change the threshold at which new ranges are assigned, execute sp_changearticle at the Publisher on the publication database. Geben Sie für @property den Wert threshold und für @value den neuen Schwellenwert an.Specify a value of threshold for @property and the new threshold value for @value.

So ändern Sie die Einstellungen für die automatische Identitätsbereichsverwaltung für einen vorhandenen Artikel in einer MergeveröffentlichungTo change automatic identity range management settings for an existing article in a merge publication

  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.At the Publisher on the publication database, execute sp_helpmergearticle and note the value of identity_support in the result set. Ist dieser Wert 0, ist die automatische Identitätsbereichsverwaltung nicht aktiviert.If this value is 0, automatic identity range management is not enabled.

  2. Wenn der Wert von identity_support im Resultset 1ist, ändern Sie die Einstellungen wie folgt:If the value of identity_support in the result set is 1, change the settings as follows:

    • Um die zugewiesenen Identitätsbereiche zu ändern, führen Sie sp_changemergearticle auf dem Verleger für die Veröffentlichungsdatenbank aus.To change the assigned identity ranges, execute sp_changemergearticle at the Publisher on the publication database. Geben Sie für @property den Wert identity_range oder pub_identity_range und für @value den neuen Bereichswert an.Specify a value of identity_range or pub_identity_range for @property and the new range value for @value.

    • 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.To change the threshold at which new ranges are assigned, execute sp_changemergearticle at the Publisher on the publication database. Geben Sie für @property den Wert threshold und für @value den neuen Schwellenwert an.Specify a value of threshold for @property and the new threshold value for @value. Weitere Informationen dazu, wann neue Identitätsbereiche zugewiesen werden, finden Sie im Abschnitt zum Zuweisen von Identitätsbereichen im Thema Replizieren von Identitätsspalten.For more information on when new identity ranges are assigned, see Assigning Identity Ranges in the topic Replicate Identity Columns.

    • Um die automatische Verwaltung von Identitätsbereichen zu deaktivieren, führen Sie sp_changemergearticle auf dem Verleger für die Veröffentlichungsdatenbank aus.To disable automatic identity range management, execute sp_changemergearticle at the Publisher on the publication database. Geben Sie den Wert identityrangemanagementoption für @property und entweder manual oder none für @value an.Specify a value of identityrangemanagementoption for @property and either manual or none for @value.

Weitere InformationenSee Also

Peer-to-Peer Transactional Replication Peer-to-Peer Transactional Replication
Replication System Stored Procedures Concepts Replication System Stored Procedures Concepts
Replizieren von IdentitätsspaltenReplicate Identity Columns