Replizieren von IdentitätsspaltenReplicate Identity Columns

Dieses Thema gilt für: JaSQL ServerkeineAzure SQL-DatenbankkeineAzure SQL Data Warehouse keine Parallel DatawarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Wenn Sie einer Spalte eine IDENTITY-Eigenschaft zuweisen, generiert MicrosoftMicrosoft SQL ServerSQL Server für neue Zeilen, die in die Tabelle, die die Identitätsspalte enthält, eingefügt werden, automatisch sequenzielle Zahlwerte.When you assign an IDENTITY property to a column, MicrosoftMicrosoft SQL ServerSQL Server automatically generates sequential numbers for new rows inserted in the table containing the identity column. Weitere Informationen finden Sie unter IDENTITY (Eigenschaft) (Transact-SQL).For more information, see IDENTITY (Property) (Transact-SQL). Da Identitätsspalten als Teil des Primärschlüssels aufgenommen werden können, ist es wichtig, dass die Identitätsspalten keine doppelten Werte enthalten.Because identity columns might be included as a part of the primary key, it is important to avoid duplicate values in the identity columns. Wenn Identitätsspalten in einer Replikationstopologie verwendet werden sollen, die an mehreren Knoten Updates besitzt, muss jeder Knoten in der Replikationstopologie einen anderen Bereich von Identitätswerten verwenden, damit es nicht zu Dopplungen kommt.To use identity columns in a replication topology that has updates at more than one node, each node in the replication topology must use a different range of identity values, so that duplicates do not occur.

Beispielsweise kann dem Verleger der Bereich 1-100 zugewiesen werden, dem Abonnent A der Bereich 101-200 und dem Abonnent B der Bereich 201-300.For example, the Publisher could be assigned the range 1-100, Subscriber A the range 101-200, and Subscriber B the range 201-300. Wenn beim Verleger eine Zeile eingefügt wird und der Identitätswert beispielsweise 65 beträgt, wird der Wert für jeden Abonnenten repliziert.If a row is inserted at the Publisher and the identity value is, for example, 65, that value is replicated to each Subscriber. Beim Einfügen der Daten auf den einzelnen Abonnenten erhöht die Replikation jedoch nicht den Identitätsspaltenwert in der Abonnententabelle um 1, sondern es wird der Literalwert 65 eingefügt.When replication inserts data at each Subscriber, it does not increment the identity column value in the Subscriber table; instead, the literal value 65 is inserted. Eine inkrementelle Erhöhung des Identitätsspaltenwerts erfolgt nur bei Benutzereinfügungen, nicht jedoch bei Einfügungen durch einen Replikations-Agent.Only user inserts, but not replication agent inserts cause the identity column value to be incremented.

Die Replikation behandelt die Identitätsspalten in allen Veröffentlichungs- und Abonnementtypen und ermöglicht es Ihnen so, die Spalten entweder selbst manuell zu verwalten oder die Spalten automatisch durch die Replikation verwalten zu lassen.Replication handles identity columns across all publication and subscription types, allowing you to manage the columns manually or have replication manage them automatically.

Hinweis

Das Hinzufügen einer Identitätsspalte zu einer veröffentlichten Tabelle wird nicht unterstützt, da ein solcher Vorgang zu Nichtkonvergenz führen kann, wenn die Spalte auf den Abonnenten repliziert wird.Adding an identity column to a published table is not supported, because it can result in non-convergence when the column is replicated to the Subscriber. Die Werte in der Identitätsspalte auf dem Verleger richten sich nach der Ordnung, in der die Zeilen für die betreffende Tabelle physisch gespeichert sind.The values in the identity column at the Publisher depend on the order in which the rows for the affected table are physically stored. Es ist möglich, dass die Zeilen auf dem Abonnenten anders gespeichert sind, sodass der Wert für die Identitätsspalte für dieselben Zeilen unterschiedlich sein kann.The rows might be stored differently at the Subscriber; therefore the value for the identity column can be different for the same rows.

Angeben der Optionen für die IdentitätsbereichsverwaltungSpecifying an Identity Range Management Option

Die Replikation bietet die folgenden drei Optionen für die Identitätsbereichsverwaltung:Replication offers three identity range management options:

  • Automatisch.Automatic. Diese Option ist bei Mergereplikationen und Transaktionsreplikationen mit Update auf den Abonnenten zu verwenden.Used for merge replication and transactional replication with updates at the Subscriber. Geben Sie die Größenbereiche für den Verleger und die Abonnenten an. Die Replikation übernimmt dann automatisch die Zuweisung der neuen Bereiche.Specify size ranges for the Publisher and Subscribers, and replication automatically manages the assignment of new ranges. Die Replikation aktiviert die Option NOT FOR REPLICATION für die Identitätsspalte auf dem Abonnenten, sodass nur Benutzereinfügungen zu einer inkrementellen Erhöhung des Werts auf dem Abonnenten führen.Replication sets the NOT FOR REPLICATION option on the identity column at the Subscriber, so that only user inserts cause the value to be incremented at the Subscriber.

    Hinweis

    Die Abonnenten müssen mit dem Verleger synchronisiert werden, um die neuen Bereiche zu empfangen.Subscribers must synchronize with the Publisher to receive new ranges. Da den Abonnenten die Identitätsbereiche automatisch zugewiesen werden, ist es für alle Abonnenten möglich, sämtliche Identitätsbereiche auszuschöpfen, wenn wiederholt neue Bereiche angefordert werden.Because Subscribers are assigned identity ranges automatically, it is possible for any Subscriber to exhaust the entire supply of identity ranges if it repeatedly requests new ranges.

  • Manuell.Manual. Diese Option ist bei Momentaufnahme- und Transaktionsreplikationen ohne Updates auf dem Abonnenten, bei Peer-zu-Peer-Transaktionsreplikationen und in den Fällen zu verwenden, in denen Ihre Anwendung die Identitätsbereiche programmgesteuert kontrollieren muss.Used for snapshot and transactional replication without updates at the Subscriber, peer-to-peer transactional replication, or if your application must control identity ranges programmatically. Wenn Sie die manuelle Verwaltung angeben, müssen Sie sicherstellen, dass dem Verleger und den einzelnen Abonnenten Bereiche zugewiesen werden und dass neue Bereiche zugeordnet werden, sofern die anfänglichen Bereiche verwendet werden.If you specify manual management, you must ensure that ranges are assigned to the Publisher and each Subscriber and that new ranges are assigned if the initial ranges are used. Die Replikation aktiviert die Option NOT FOR REPLICATION für die Identitätsspalte auf dem Abonnenten.Replication sets the NOT FOR REPLICATION option on the identity column at the Subscriber.

  • Keine.None. Diese Option sollte nur für die Rückwärtskompatibilität mit früheren SQL ServerSQL Server -Versionen verwendet werden. Bei Transaktionsveröffentlichungen ist die Option nur über die gespeicherte Prozedur verfügbar.This option is recommended only for backwards compatibility with earlier versions of SQL ServerSQL Server and is available only from the stored procedure interface for transactional publications.

    Informationen zum Angeben einer Option für die Identitätsbereichsverwaltung finden Sie unter Verwalten von Identitätsspalten.To specify an identity range management option, see Manage Identity Columns.

Zuweisen von IdentitätsbereichenAssigning Identity Ranges

Bei der Mergereplikation und der Transaktionsreplikation kommen zum Zuweisen von Bereichen unterschiedliche Methoden zum Einsatz. Diese Methoden werden im Folgenden näher beschrieben.Merge replication and transactional replication use different methods for assigning ranges; these methods are described in this section.

Beim Replizieren von Identitätsspalten sind die folgenden beiden Bereichstypen zu berücksichtigen: Bereiche, die dem Verleger und den Abonnenten zugewiesen werden, und der Bereich des Datentyps in der Spalte.There are two types of ranges to take into account when replicating identity columns: the ranges assigned to the Publisher and Subscribers, and the range of the data type in the column. Die folgende Tabelle enthält eine Übersicht über die für die Datentypen verfügbaren Bereiche, die in der Regel in Identitätsspalten verwendet werden.The following table shows the ranges available for the data types typically used in identity columns. Der Bereich wird in allen Knoten in einer Topologie verwendet.The range is used across all nodes in a topology. Wenn Sie z. B. smallint beginnend mit 1 und einem Inkrement von 1 verwenden, sind maximal 32.767 Einfügungen für den Verleger und alle Abonnenten zulässig.For example, if you use smallint starting at 1 with an increment of 1, the maximum number of inserts is 32,767 for the Publisher and all Subscribers. Die tatsächliche Anzahl der Einfügungen hängt davon ab, ob es in den verwendeten Werten Lücken gibt und ob ein Schwellenwert verwendet wird.The actual number of inserts depends on whether there are gaps in the values used and whether a threshold value is used. Weitere Informationen zu Schwellenwerten finden Sie in den folgenden Abschnitten: "Mergereplikation" und "Transaktionsreplikation mit Abonnements mit verzögertem Update über eine Warteschlange".For more information about thresholds, see the following sections "Merge Replication" and "Transactional Replication with Queued Updating Subscriptions".

Wenn der Verleger nach einer Einfügung seinen Identitätsbereich ausgeschöpft hat, kann er automatisch einen neuen Bereich zuweisen, wenn die Einfügung von einem Mitglied mit der festen db_owner -Datenbankrolle ausgeführt wurde.If the Publisher exhausts its identity range after an insert, it can automatically assign a new range if the insert was performed by a member of the db_owner fixed database role. Wenn die Einfügung von einem Benutzer mit einer anderen Rolle ausgeführt wird, muss der Protokolllese-Agent, der Merge-Agent oder ein Benutzer, der Mitglied der db_owner-Rolle ist, sp_adjustpublisheridentityrange (Transact-SQL) ausführen.If the insert was performed by a user not in that role, the Log Reader Agent, Merge Agent, or a user who is a member of the db_owner role must run sp_adjustpublisheridentityrange (Transact-SQL). Bei Transaktionsveröffentlichungen muss der Protokolllese-Agent ausgeführt werden, damit automatisch ein neuer Bereich zugeordnet wird (der Agent wird standardmäßig ununterbrochen ausgeführt).For transactional publications, the Log Reader Agent must be running to automatically allocate a new range (the default is for the agent to run continuously).

Warnung

Während einer umfangreichen Batcheinfügung wird der Replikationstrigger nur einmal und nicht für jede eingefügte Zeile ausgelöst.During a large batch insert the replication trigger is fired only once, not for each row of the insert. Dies kann zu einem Fehler bei der INSERT-Anweisung führen, wenn ein Identitätsbereich während einer umfangreichen Einfügung, z. B. einer INSERT INTO -Anweisung, ausgeschöpft ist.This can lead to a failure of the insert statement if an identity range is exhausted during an large insert, such as an INSERT INTO statement.

DatentypData type BereichRange
tinyinttinyint Keine Unterstützung bei automatischer VerwaltungNot supported for automatic management
smallintsmallint -2^15 (-32,768) bis 2^15-1 (32,767)-2^15 (-32,768) to 2^15-1 (32,767)
intint -2^31 (-2.147.483.648) bis 2^31-1 (2.147.483.647)-2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647)
bigintbigint -2^63 (-9.223.372.036.854.775.808) bis 2^63-1 (9.223.372.036.854.775.807)-2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807)
decimal und numericdecimal and numeric -10^38+1 bis 10^38-1-10^38+1 through 10^38-1

Hinweis

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.

MergereplikationMerge Replication

Identitätsbereiche werden vom Verleger verwaltet und vom Merge-Agent an die Abonnenten weitergegeben (in einer Wiederveröffentlichungshierarchie werden die Bereiche vom Stammverleger und den Neuverlegern verwaltet).Identity ranges are managed by the Publisher and propagated to Subscribers by the Merge Agent (in a republishing hierarchy, ranges are managed by the root Publisher and the republishers). Die Identitätswerte werden auf dem Verleger aus einem Pool zugewiesen.The identity values are assigned from a pool at the Publisher. Wenn Sie einen Artikel mit einer Identitätsspalte einer Veröffentlichung im Assistenten für neue Veröffentlichung oder mithilfe von sp_addmergearticle (Transact-SQL) hinzufügen, können Sie Werte für die folgenden Parameter angeben:When you add an article with an identity column to a publication in the New Publication Wizard or by using sp_addmergearticle (Transact-SQL), you specify values for:

  • Mit dem @identity_range-Parameter steuern Sie die Größe des Identitätsbereichs, der dem Verleger und den Abonnenten mit Clientabonnements anfänglich zugeordnet wird.The @identity_range parameter, which controls the identity range size initially allocated both to the Publisher and to Subscribers with client subscriptions.

    Hinweis

    Bei Abonnenten, die eine ältere SQL ServerSQL Server-Version ausführen, steuert dieser Parameter darüber hinaus die Größe des Identitätsbereichs auf den Wiederveröffentlichungsabonnenten (und tritt damit an die Stelle des @pub_identity_range -Parameters).For Subscribers running previous versions of SQL ServerSQL Server, this parameter (rather than the @pub_identity_range parameter) also controls the identity range size at republishing Subscribers.

  • Mit dem @pub_identity_range-Parameter steuern Sie die Größe des Identitätsbereichs für die Wiederveröffentlichung, der den Abonnenten mit Serverabonnements zugeordnet ist (erforderlich für die Wiederveröffentlichung von Daten).The @pub_identity_range parameter, which controls the identity range size for republishing allocated to Subscribers with server subscriptions (required for republishing data). Alle Abonnenten mit Serverabonnenten erhalten einen Bereich zur Wiederveröffentlichung, auch wenn sie gar keine Daten erneut veröffentlichen.All Subscribers with server subscriptions receive a range for republishing, even if they don't actually republish data.

  • Mit dem @threshold-Parameter bestimmen Sie, wann ein neuer Identitätsbereich für ein Abonnement von SQL Server CompactSQL Server Compact oder eine frühere SQL ServerSQL Server-Version erforderlich ist.The @threshold parameter, which is used to determine when a new range of identities is required for a subscription to SQL Server CompactSQL Server Compact or a previous version of SQL ServerSQL Server.

    So könnten Sie z. B. für @identity_range 10.000 und für @pub_identity_range.For example, you could specify 10000 for @identity_range and 500000 for @pub_identity_range. Dem Verleger und allen Abonnenten, die SQL Server 2005SQL Server 2005 oder eine höhere Version ausführen, einschließlich des Abonnenten mit dem Serverabonnement, wird der Primärbereich 10.000 zugewiesen.The Publisher and all Subscribers running SQL Server 2005SQL Server 2005 or a later version, including the Subscriber with the server subscription, are assigned a primary range of 10000. Dem Abonnenten mit dem Serverabonnement wird zudem der Primärbereich 500.000 zugewiesen, der von den Abonnenten verwendet werden kann, die eine Synchronisierung mit dem Wiederveröffentlichungsabonnenten ausführen (für die Artikel in der Veröffentlichung auf dem Wiederveröffentlichungsabonnenten müssen Sie ebenfalls einen Wert für @identity_range, @pub_identity_rangeund @threshold angeben).The Subscriber with the server subscription is also assigned a primary range of 500000, which can be used by Subscribers that synchronize with the republishing Subscriber (you must also specify @identity_range, @pub_identity_range, and @threshold for the articles in the publication at the republishing Subscriber).

    Jeder Abonnent, auf dem SQL Server 2005SQL Server 2005 oder eine höhere Version ausgeführt wird, erhält darüber hinaus einen sekundären Identitätsbereich.Each Subscriber running SQL Server 2005SQL Server 2005 or a later version also receives a secondary identity range. Der sekundäre Bereich entspricht in seiner Größe der Größe des Primärbereichs. Wenn der Primärbereich ausgeschöpft ist, wird der sekundäre Bereich verwendet, und der Merge-Agent weist dem Abonnenten einen neuen Bereich zu.The secondary range is equal in size to the primary range; when the primary range is exhausted, the secondary range is used, and the Merge Agent assigns a new range to the Subscriber. Der neue Bereich wird zum sekundären Bereich, und der Prozess wird fortgesetzt.The new range becomes the secondary range, and the process continues as the Subscriber uses identity values.

Transaktionsreplikation mit Abonnements mit verzögertem Update über eine WarteschlangeTransactional Replication with Queued Updating Subscriptions

Die Identitätsbereiche werden vom Verteilungs-Agent auf dem Verteiler verwaltet und an die Abonnenten weitergegeben.Identity ranges are managed by the Distributor and propagated to Subscribers by the Distribution Agent. Die Identitätswerte werden auf dem Verteiler aus einem Pool zugewiesen.The identity values are assigned from a pool at the Distributor. Die Größe des Pools richtet sich nach der Größe des Datentyps und des für die Identitätsspalte verwendeten Inkrements.The pool size is based on the size of the data type and the increment used for the identity column. Wenn Sie einen Artikel mit einer Identitätsspalte einer Veröffentlichung im Assistenten für neue Veröffentlichung oder mithilfe von sp_addarticle (Transact-SQL) hinzufügen, können Sie Werte für die folgenden Parameter angeben:When you add an article with an identity column to a publication in the New Publication Wizard or by using sp_addarticle (Transact-SQL), you specify values for:

  • Mit dem @identity_range-Parameter steuern Sie die Größe des Identitätsbereichs, der allen Abonnenten anfänglich zugeordnet wird.The @identity_range parameter, which controls the identity range size initially allocated to all Subscribers.

  • Mit dem @pub_identity_range-Parameter steuern Sie die Größe des Identitätsbereichs, der dem Verleger zugeordnet wird.The @pub_identity_range parameter, which controls the identity range size allocated to the Publisher.

  • Mit dem @threshold-Parameter bestimmen Sie, wann ein neuer Bereich für ein Abonnement erforderlich ist.The @threshold parameter, which is used to determine when a new range of identities is required for a subscription.

    So könnten Sie z. B. für @pub_identity_range10.000, für @identity_range 1.000 (unter der Annahme einer geringeren Anzahl von Updates auf dem Abonnenten) und für @threshold.For example, you could specify 10000 for @pub_identity_range, 1000 for @identity_range (assuming fewer updates at the Subscriber), and 80 percent for @threshold. Nach 800 Einfügungen auf einem Abonnenten (80 Prozent von 1.000) wird einem Abonnenten ein neuer Bereich zugewiesen.After 800 inserts at a Subscriber (80 percent of 1000), a Subscriber is assigned a new range. Nach 8.000 Einfügungen auf dem Verleger wird dem Verleger ein neuer Bereich zugewiesen.After 8000 inserts at the Publisher, the Publisher is assigned a new range. Beim Zuweisen eines neuen Bereichs ergibt sich jedoch eine Lücke in den Identitätsbereichswerten in der Tabelle.When a new range is assigned, there will be a gap in the identity range values in the table. Durch Angabe eines höheren Schwellenwerts fallen diese Lücken zwar kleiner aus, das System ist dann aber auch weniger fehlertolerant, d. h., wenn der Verteilungs-Agent aus irgendeinem Grund nicht ausgeführt werden kann, gehen einem Abonnenten möglicherweise schneller die Identitäten aus.Specifying a higher threshold results in smaller gaps, but the system is less fault-tolerant: if the Distribution Agent cannot run for some reason, a Subscriber could more easily run out of identities.

Zuweisen von Bereichen für die manuelle IdentitätsbereichsverwaltungAssigning ranges for manual identity range management

Wenn Sie die manuelle Identitätsbereichsverwaltung angeben, müssen Sie sicherstellen, dass der Verleger und alle Abonnenten verschiedene Identitätsbereiche verwenden.If you specify manual identity range management, you must ensure that the Publisher and each Subscriber use different identity ranges. Stellen Sie sich z. B. eine Tabelle auf dem Verleger mit einer als IDENTITY(1,1)definierten Identitätsspalte vor: Die Identitätsspalte beginnt mit 1 und erhöht sich bei jeder neu eingefügten Zeile um 1.For example, consider a table at the Publisher with an identity column defined as IDENTITY(1,1): the identity column starts at 1 and is incremented by 1 each time a row is inserted. Wenn die Tabelle auf dem Verleger 5.000 Zeilen besitzt und Sie für den weiteren Entwicklungsverlauf der Anwendung eine gewisse Vergrößerung der Tabelle erwarten, könnte der Verleger den Bereich 1-10.000 verwenden.If the table at the Publisher has 5,000 rows, and you expect some growth in the table over the life of the application, the Publisher could use the range 1-10,000. Bei Vorhandensein von zwei Abonnenten könnte der Abonnent A den Bereich 10.001-20.000 und der Abonnent B den Bereich 20.001-30.000 verwenden.Given two Subscribers, Subscriber A could use 10,001–20,000, and Subscriber B could use 20,001-30,000.

Nachdem ein Abonnent mit einer Momentaufnahme oder auf andere Weise initialisiert wurde, führen Sie DBCC CHECKIDENT aus, um dem Abonnenten einen Anfangspunkt für dessen Identitätsbereich zuzuweisen.After a Subscriber is initialized with a snapshot or through another means, execute DBCC CHECKIDENT to assign the Subscriber a starting point for its identity range. Auf Abonnent A würden Sie dazu z. B. DBCC CHECKIDENT('<TableName>','reseed',10001)ausführen.For example, at Subscriber A, you would execute DBCC CHECKIDENT('<TableName>','reseed',10001). Auf Abonnent B ist dann CHECKIDENT('<TableName>','reseed',20001)auszuführen.At Subscriber B, you would execute CHECKIDENT('<TableName>','reseed',20001).

Zum Zuweisen neuer Bereiche zum Verleger bzw. zu den Abonnenten führen Sie DBCC CHECKIDENT aus, und geben Sie einen neuen Wert als Ausgangswert für die Tabelle an.To assign new ranges to the Publisher or Subscribers, execute DBCC CHECKIDENT and specify a new value to reseed the table. Auf irgendeine Weise müssen Sie auch bestimmen, wann ein neuer Bereich zugewiesen werden muss.You should have some way to determine when a new range must be assigned. So könnte Ihre Anwendung z. B. einen Mechanismus besitzen, der erkennt, wann ein Knoten seinen Bereich fast ausgeschöpft hat, und mithilfe von DBCC CHECKIDENT einen neuen Bereich zuweisen.For example, your application could have a mechanism that detects when a node is about to use up its range and assign a new range using DBCC CHECKIDENT. Sie können auch eine CHECK-Einschränkung hinzufügen, um sicherzustellen, dass keine Zeile hinzugefügt wird, wenn dies zum Verwenden eines außerhalb des Bereichs liegenden Identitätswerts führen würde.You can also add a check constraint to ensure that a row cannot be added if it would cause an out of range identity value to be used.

Umgang mit Identitätsbereichen nach einer DatenbankwiederherstellungHandling Identity Ranges after a Database Restore

Wenn Sie die automatische Identitätsbereichsverwaltung verwenden und ein Abonnent aus einer Sicherung wiederhergestellt wird, fordert dieser Abonnent automatisch einen neuen Bereich von Identitätswerten an.If you are using automatic identity range management, when a Subscriber is restored from a backup, it automatically requests a new range of identity values. Wenn ein Verleger aus einer Sicherung wiederhergestellt wird, müssen Sie selbst sicherstellen, dass dem Verleger ein entsprechender Bereich zugewiesen wird.If a Publisher is restored from a backup, you must ensure that the Publisher is assigned an appropriate range. Für die Mergereplikation weisen Sie einen neuen Bereich mit sp_restoremergeidentityrange (Transact-SQL) zu.For merge replication, assign a new range using sp_restoremergeidentityrange (Transact-SQL). Bei Transaktionsreplikationen müssen Sie den höchsten Wert bestimmen, der verwendet wurde, und dann den Anfangspunkt für neue Bereiche festlegen.For transactional replication, determine the highest value that has been used and then set the starting point for new ranges. Gehen Sie nach dem Wiederherstellen der Veröffentlichungsdatenbank wie folgt vor:Use the following procedure after the publication database has been restored:

  1. Beenden Sie alle Aktivitäten auf allen Abonnenten.Stop all activity on all Subscribers.

  2. Gehen Sie für jede veröffentlichte Tabelle, die eine Identitätsspalte enthält, wie folgt vor:For each published table that includes an identity column:

    1. Führen Sie in der Abonnementdatenbank auf jedem Abonnenten IDENT_CURRENT('<TableName>')aus.In the subscription database at each Subscriber, execute IDENT_CURRENT('<TableName>').

    2. Notieren Sie sich den höchsten Wert, den Sie bei den Abonnenten gefunden haben.Record the highest value found across all Subscribers.

    3. Führen Sie in der Veröffentlichungsdatenbank auf dem Verleger DBCC CHECKIDENT(<TableName>','reseed',<HighestValueFound+1>) aus.In the publication database at the Publisher, execute DBCC CHECKIDENT(<TableName>','reseed',<HighestValueFound+1>).

    4. Führen Sie in der Veröffentlichungsdatenbank auf dem Verleger sp_adjustpublisheridentityrange <PublicationName>, <TableName>aus.In the publication database at the Publisher, execute sp_adjustpublisheridentityrange <PublicationName>, <TableName>.

    Hinweis

    Wenn für den Wert in der Identitätsspalte festgelegt wurde, dass er verringert statt vergrößert werden soll, notieren Sie sich den niedrigsten gefundenen Wert, und legen Sie diesen Wert dann als neuen Ausgangswert fest.If the value in the identity column is set to decrement rather than increment, record the lowest value found, and then reseed with that value.

Weitere Informationen finden Sie unterSee Also

BACKUP (Transact-SQL) BACKUP (Transact-SQL)
DBCC CHECKIDENT (Transact-SQL) DBCC CHECKIDENT (Transact-SQL)
IDENT_CURRENT (Transact-SQL) IDENT_CURRENT (Transact-SQL)
IDENTITY (Eigenschaft) (Transact-SQL) IDENTITY (Property) (Transact-SQL)
sp_adjustpublisheridentityrange (Transact-SQL)sp_adjustpublisheridentityrange (Transact-SQL)