Vornehmen von Schemaänderungen in VeröffentlichungsdatenbankenMake Schema Changes on Publication Databases

GILT FÜR: jaSQL Server jaAzure SQL-Datenbank (nur verwaltete Instanz) neinAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database (Managed Instance only) noAzure SQL Data Warehouse noParallel Data Warehouse

Die Replikation unterstützt eine breite Palette von Schemaänderungen an veröffentlichten Objekten.Replication supports a wide range of schema changes to published objects. Wenn Sie eine der folgenden Schemaänderungen am entsprechenden veröffentlichten Objekt auf einem MicrosoftMicrosoft SQL ServerSQL Server -Verleger vornehmen, wird diese Änderung standardmäßig an alle SQL ServerSQL Server -Abonnenten weitergegeben:When you make any of the following schema changes on the appropriate published object at a MicrosoftMicrosoft SQL ServerSQL Server Publisher, that change is propagated by default to all SQL ServerSQL Server Subscribers:

  • ALTER TABLEALTER TABLE

  • ALTER TABLE SET LOCK ESCALATION darf nicht verwendet werden, wenn die Schemaänderungsreplikation aktiviert ist und eine Topologie SQL Server 2005 (9.x)SQL Server 2005 (9.x)- oder SQL Server Compact 3.5SQL Server Compact 3.5-Abonnenten enthält.ALTER TABLE SET LOCK ESCALATION should not be used if schema change replication is enabled and a topology includes SQL Server 2005 (9.x)SQL Server 2005 (9.x) or SQL Server Compact 3.5SQL Server Compact 3.5 Subscribers.

  • ALTER VIEWALTER VIEW

  • ALTER PROCEDUREALTER PROCEDURE

  • ALTER FUNCTIONALTER FUNCTION

  • ALTER TRIGGERALTER TRIGGER

    ALTER TRIGGER kann nur für DML-Trigger [Data Manipulation Language] verwendet werden, da DLL-Triggers [Data Definition Language] nicht repliziert werden können.ALTER TRIGGER can be used only for data manipulation language [DML] triggers because data definition language [DDL] triggers cannot be replicated.

Wichtig

Schemaänderungen an Tabellen müssen mithilfe von Transact-SQLTransact-SQL oder SQL ServerSQL Server Management Objects (SMO) vorgenommen werden.Schema changes to tables must be made by using Transact-SQLTransact-SQL or SQL ServerSQL Server Management Objects (SMO). Wenn Schemaänderungen in SQL Server Management StudioSQL Server Management Studiovorgenommen werden, versucht Management StudioManagement Studio die Tabelle zu löschen und neu zu erstellen.When schema changes are made in SQL Server Management StudioSQL Server Management Studio, Management StudioManagement Studio attempts to drop and re-create the table. Da veröffentlichte Objekte nicht gelöscht werden können, schlägt die Schemaänderung fehl.You cannot drop published objects, therefore the schema change fails.

Bei der Transaktions- und der Mergereplikation werden Schemaänderungen inkrementell weitergegeben, sobald der Verteilungs-Agent oder der Merge-Agent ausgeführt wird.For transactional replication and merge replication, schema changes are propagated incrementally when the Distribution Agent or Merge Agent runs. Bei der Momentaufnahmereplikation werden Schemaänderung weitergegeben, wenn eine neue Momentaufnahme auf den Abonnenten angewendet wird.For snapshot replication, schema changes are propagated when a new snapshot is applied at the Subscriber. Außerdem wird bei der Momentaufnahmereplikation eine neue Kopie des Schemas bei jeder Synchronisierung an den Abonnenten gesendet.In snapshot replication, a new copy of the schema is sent to the Subscriber each time synchronization occurs. Deshalb werden alle Schemaänderungen (nicht nur die oben aufgeführten) an bereits veröffentlichten Objekten automatisch bei jeder Synchronisierung weitergegeben.Therefore, all schema changes (not just those listed above) to previously published objects are automatically propagated with each synchronization.

Informationen zu Überlegungen zum Hinzufügen und Löschen von Artikeln aus Veröffentlichungen finden Sie unter Hinzufügen und Löschen von Artikeln aus vorhandenen Veröffentlichungen.For information about adding and removing articles from publications, see Add Articles to and Drop Articles from Existing Publications.

So replizieren Sie SchemaänderungenTo replicate schema changes

Die oben aufgeführten Schemaänderungen werden standardmäßig repliziert.The schema changes listed above are replicated by default. Informationen zum Deaktivieren der Replikation von Schemaänderungen finden Sie unter Replicate Schema Changes.For information about disabling the replication of schema changes, see Replicate Schema Changes.

Überlegungen zu SchemaänderungenConsiderations for Schema Changes

Beachten Sie beim Replizieren von Schemaänderungen Folgendes:Keep the following considerations in mind when replicating schema changes.

Allgemeine ÜberlegungenGeneral Considerations

  • Schemaänderungen unterliegen den Einschränkungen von Transact-SQLTransact-SQL.Schema changes are subject to any restrictions imposed by Transact-SQLTransact-SQL. Beispielsweise können Sie mit ALTER TABLE keine Primärschlüsselspalten ändern.For example, ALTER TABLE does not allow you to ALTER primary key columns.

  • Datentypzuordnung wird nur für die Anfangsmomentaufnahme ausgeführt.Data type mapping is performed only for the initial snapshot. Schemaänderungen werden nicht vorherigen Versionen von Datentypen zugeordnet.Schema changes are not mapped to previous versions of data types. Beispiel: Wenn die ALTER TABLE ADD datetime2 column -Anweisung in SQL Server 2012 (11.x)SQL Server 2012 (11.x)verwendet wird, wird der Datentyp nicht für ssVersion2005 -Abonnenten in SQL Server 2005 (9.x)SQL Server 2005 (9.x) umgewandelt.For example, if the statement ALTER TABLE ADD datetime2 column is used in SQL Server 2012 (11.x)SQL Server 2012 (11.x), the data type is not translated to nvarchar for SQL Server 2005 (9.x)SQL Server 2005 (9.x) Subscribers. In einigen Fällen werden Schemaänderungen auf dem Verleger blockiert.In some cases, schema changes are blocked on the Publisher.

  • Wenn für eine Veröffentlichung die Weitergabe von Schemaänderungen festgelegt ist, werden die Schemaänderungen unabhängig davon weitergegeben, wie die verbundene Schemaoption für einen Artikel in der Veröffentlichung festgelegt ist.If a publication is set to allow the propagation of schema changes, schema changes are propagated regardless of how the related schema option is set for an article in the publication. Beispiel: Sie entscheiden sich, FOREIGN KEY-Einschränkungen für einen Tabellenartikel nicht zu replizieren, geben dann jedoch einen ALTER TABLE-Befehl aus, mit dem der Tabelle auf dem Verleger ein Fremdschlüssel hinzugefügt wird. In diesem Fall wird der Fremdschlüssel der Tabelle auf dem Abonnenten hinzugefügt.For example, if you select not to replicate foreign key constraints for a table article, but then issue an ALTER TABLE command that adds a foreign key to the table at the Publisher, the foreign key is added to the table at the Subscriber. Um das zu verhindern, deaktivieren Sie die Weitergabe von Schemaänderungen, bevor Sie den ALTER TABLE-Befehl ausgeben.To prevent this, disable the propagation of schema changes before issuing the ALTER TABLE command.

  • Schemaänderungen sollten nur auf dem Verleger und nicht auf den Abonnenten (einschließlich Wiederveröffentlichungsabonnenten) ausgegeben werden.Schema changes should be made only at the Publisher, not at Subscribers (including republishing Subscribers). Die Mergereplikation verhindert Schemaänderungen auf dem Abonnenten.Merge replication prevents schema changes at the Subscriber. Die Transaktionsreplikation verhindert die Änderungen zwar nicht, es können jedoch Fehler bei der Replikation auftreten.Transactional replication does not prevent the changes, but the changes can cause replication to fail.

  • An einen Wiederveröffentlichungsabonnenten weitergegebene Änderungen werden standardmäßig an dessen Abonnenten weitergegeben.Changes propagated to a republishing Subscriber are by default propagated to its Subscribers.

  • Verweist die Schemaänderung auf Objekte oder Einschränkungen, die auf dem Verleger, aber nicht auf dem Abonnenten vorhanden sind, ist die Schemaänderung auf dem Verleger erfolgreich, schlägt jedoch auf dem Abonnenten fehl.If the schema change references objects or constraints existing on the Publisher but not on the Subscriber, the schema change will succeed on the Publisher but will fail on the Subscriber.

  • Alle Objekte auf dem Abonnenten, auf die beim Hinzufügen eines Fremdschlüssels verwiesen wird, müssen denselben Namen und Besitzer aufweisen wie das entsprechende Objekt auf dem Verleger.All objects on the Subscriber that are referenced when adding a foreign key must have the same name and owner as the corresponding object on the Publisher.

  • Ein explizites Hinzufügen, Löschen oder Ändern von Indizes wird nicht unterstützt.Explicitly adding, dropping, or altering indexes is not supported. Implizit für Einschränkungen erstellte Indizes (wie z. B. Primärschlüsseleinschränkungen) werden unterstützt.Indexes created implicitly for constraints (such as a primary key constraint) are supported.

  • Das Ändern oder Löschen von Identitätsspalten, die von der Replikation verwaltet werden, wird nicht unterstützt.Altering or dropping identity columns that are managed by replication is not supported. Weitere Informationen zur automatischen Verwaltung von Identitätsspalten finden Sie unter Replizieren von Identitätsspalten.For more information about automatic management of identity columns, see Replicate Identity Columns.

  • Schemaänderungen, die nicht deterministische Funktionen einschließen, werden nicht unterstützt, da daraus unterschiedliche Daten auf dem Verleger und dem Abonnenten resultieren können (eine so genannte mangelnde Konvergenz).Schema changes that include nondeterministic functions are not supported because they can result in data at the Publisher and Subscriber being different (referred to as non-convergence). Wenn Sie beispielsweise folgenden Befehl auf dem Verleger ausgeben: ALTER TABLE SalesOrderDetail ADD OrderDate DATETIME DEFAULT GETDATE(), und der Befehl wird auf den Abonnenten repliziert und ausgeführt, dann unterscheiden sich die Werte.For example, if you issue the following command at the Publisher: ALTER TABLE SalesOrderDetail ADD OrderDate DATETIME DEFAULT GETDATE(), the values are different when the command is replicated to the Subscriber and executed. Weitere Informationen zu nicht deterministischen Funktionen finden Sie unter Deterministic and Nondeterministic Functions.For more information about nondeterministic functions, see Deterministic and Nondeterministic Functions.

  • Es wird empfohlen, Einschränkungen explizit zu benennen.It is recommended that constraints be explicitly named. Wenn eine Einschränkung nicht explizit benannt wird, generiert SQL ServerSQL Server einen Namen für die Einschränkung, und diese Namen sind auf dem Verleger und jedem Abonnenten unterschiedlich.If a constraint is not explicitly named, SQL ServerSQL Server generates a name for the constraint, and these names will be different on the Publisher and each Subscriber. Dies kann bei der Replikation von Schemaänderungen zu Problemen führen.This can cause issues during the replication of schema changes. Wenn Sie z. B. auf dem Verleger eine Spalte löschen und eine abhängige Einschränkung ebenfalls gelöscht wird, wird bei der Replikation versucht, die Einschränkung auf dem Abonnenten zu löschen.For example, if you drop a column at the Publisher and a dependent constraint is dropped, replication will attempt to drop the constraint at the Subscriber. Der Löschvorgang auf dem Abonnenten erzeugt jedoch einen Fehler, da die Einschränkung einen anderen Namen hat.The drop at the Subscriber will fail because the name of the constraint is different. Löschen Sie die Einschränkung manuell auf dem Abonnenten, und führen Sie den Merge-Agent anschließend erneut aus, wenn die Synchronisierung aufgrund eines Problems mit dem Einschränkungsnamen einen Fehler erzeugt.If synchronization fails because of a constraint naming issue, manually drop the constraint at the Subscriber and then rerun the Merge Agent.

  • Wenn eine Tabelle für die Replikation veröffentlicht wird, ist es nicht möglich, eine Spalte in dieser Tabelle in den Datentyp XML zu ändern, wenn bereits eine Veröffentlichungsmomentaufnahme generiert wurde. Um die Spalte zu ändern, müssen Sie die Replikation zuerst entfernen.If a table is published for replication, it is not possible to alter a column in that table to a data type of XML if a publication snapshot has already been generated To alter the column, you must first remove replication.

  • READ UNCOMMITTED ist keine unterstützte Isolationsstufe, wenn Sie DDL auf einer veröffentlichten Tabelle ausführen.Read uncommitted is not a supported isolation level when doing DDL on a published table.

  • SET CONTEXT_INFO sollte nicht verwendet werden, um den Transaktionskontext zu ändern, in dem Schemaänderungen für veröffentlichte Objekte ausgeführt werden.SET CONTEXT_INFO should not be used to modify the context of transactions where schema changes are performed against published objects.

Hinzufügen von SpaltenAdding Columns

  • Wenn Sie einer Tabelle eine neue Spalte hinzufügen und die Spalte in eine vorhandene Veröffentlichung einschließen möchten, führen Sie ALTER TABLE <Table> ADD <Column> aus.To add a new column to a table and include that column in an existing publication, execute ALTER TABLE <Table> ADD <Column>. Die Spalte wird dann standardmäßig auf alle Abonnenten repliziert.By default, the column is then replicated to all Subscribers. Die Spalte muss NULL-Werte zulassen oder eine Standardeinschränkung einschließen.The column must allow NULL values or include a default constraint. Weitere Informationen über das Hinzufügen von Spalten finden Sie im Abschnitt "Mergereplikation" in diesem Thema.For more information about adding columns, see the "Merge Replication" section in this topic.

  • Wenn Sie einer Tabelle eine neue Spalte hinzufügen und diese Spalte nicht in eine vorhandene Veröffentlichung einschließen möchten, führen Sie ALTER TABLE <Table> ADD <Column> aus.To add a new column to a table and not include that column in an existing publication, disable the replication of schema changes, and then execute ALTER TABLE <Table> ADD <Column>.

  • Verwenden Sie sp_articlecolumn (Transact-SQL), sp_mergearticlecolumn (Transact-SQL) oder das Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> , um eine vorhandene Spalte in eine vorhandene Veröffentlichung einzuschließen.To include an existing column in an existing publication, use sp_articlecolumn (Transact-SQL), sp_mergearticlecolumn (Transact-SQL), or the Publication Properties - <Publication> dialog box.

    Weitere Informationen finden Sie unter Definieren und Ändern eines Spaltenfilters.For more information, see Define and Modify a Column Filter. Dies erfordert, dass Sie Abonnements erneut initialisieren.This will require subscriptions to be reinitialized.

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

Löschen von SpaltenDropping Columns

  • Wenn Sie eine Spalte aus einer vorhandenen Veröffentlichung löschen und die Spalte aus der Tabelle auf dem Verleger löschen möchten, führen Sie ALTER TABLE <Table> DROP <Column> aus.To drop a column from an existing publication and drop the column from the table at the Publisher, execute ALTER TABLE <Table> DROP <Column>. Standardmäßig wird die Spalte dann aus der Tabelle auf allen Abonnenten gelöscht.By default, the column is then dropped from the table at all Subscribers.

  • Verwenden Sie sp_articlecolumn (Transact-SQL), sp_mergearticlecolumn (Transact-SQL) oder das Dialogfeld Veröffentlichungseigenschaften – <Veröffentlichung> , um eine Spalte aus einer vorhandenen Veröffentlichung zu löschen, die Spalte jedoch in der Tabelle auf dem Verleger beizubehalten.To drop a column from an existing publication but retain the column in the table at the Publisher, use sp_articlecolumn (Transact-SQL), sp_mergearticlecolumn (Transact-SQL), or the Publication Properties - <Publication> dialog box.

    Weitere Informationen finden Sie unter Definieren und Ändern eines Spaltenfilters.For more information, see Define and Modify a Column Filter. Dies erfordert, dass Sie eine neue Momentaufnahme generieren.This will require a new snapshot to be generated.

  • Die zu löschende Spalte darf nicht in den Filterklauseln eines Artikels einer Veröffentlichung in der Datenbank verwendet werden.The column to be dropped cannot be used in the filter clauses of any article of any publication in the database.

  • Beim Löschen einer Spalte aus einem veröffentlichten Artikel sollten Sie alle Einschränkungen, Indizes oder Eigenschaften der Spalte berücksichtigen, die sich auf die Datenbank auswirken können.When dropping a column from a published article, take into consideration any constraints, indexes, or properties of the column that could affect the database. Beispiel:For example:

    • Sie können keine in einem Primärschlüssel verwendeten Spalten aus Artikeln in Transaktionsveröffentlichungen löschen, da die Spalten von der Replikation verwendet werden.You cannot drop columns used in a primary key from articles in transactional publications, because they are used by replication.

    • Sie können die rowguid-Spalte nicht aus Artikeln in Mergeveröffentlichungen oder die mstran_repl_version-Spalte aus Artikeln in Transaktionsveröffentlichungen löschen, die das Aktualisieren von Abonnements unterstützen, da diese Spalten von der Replikation verwendet werden.You cannot drop the rowguid column from articles in merge publications or the mstran_repl_version column from articles in transactional publications that support updating subscriptions, because they are used by replication.

    • Indexänderungen werden nicht an die Abonnenten weitergegeben: Wenn Sie eine Spalte auf dem Verleger löschen und ein abhängiger Index ebenfalls gelöscht wird, wird das Löschen des Indexes nicht repliziert.Index changes are not propagated to Subscribers: if you drop a column at the Publisher and a dependent index is dropped, the index drop is not replicated. Sie sollten den Index auf dem Abonnenten löschen, bevor Sie die Spalte auf dem Verleger löschen, damit das Löschen der Spalte erfolgreich ausgeführt wird, wenn es vom Verleger auf den Abonnenten repliziert wird.You should drop the index at the Subscriber before dropping the column at the Publisher, so that the column drop succeeds when it is replicated from the Publisher to the Subscriber. Löschen Sie den Index manuell, und führen Sie den Merge-Agent anschließend erneut aus, wenn die Synchronisierung aufgrund eines Indexes auf dem Abonnenten einen Fehler erzeugt.If synchronization fails because of an index at the Subscriber, manually drop the index and then rerun the Merge Agent.

    • Einschränkungen sollten explizit benannt werden, um Löschvorgänge zu ermöglichen.Constraints should be explicitly named to allow for dropping. Weitere Informationen finden Sie im Abschnitt "Allgemeine Überlegungen" weiter oben in diesem Thema.For more information, see the "General Considerations" section earlier in this topic.

TransaktionsreplikationTransactional Replication

  • Schemaänderungen werden zwar an Abonnenten weitergegeben, auf denen frühere Versionen von SQL ServerSQL Serverausgeführt werden, die DDL-Anweisung sollte jedoch nur Syntax einschließen, die von der Version auf dem Abonnenten unterstützt wird.Schema changes are propagated to Subscribers running previous versions of SQL ServerSQL Server, but the DDL statement should only include syntax supported by the version at the Subscriber.

    Wenn der Abonnent Daten erneut veröffentlicht, bestehen die einzigen Schemaänderungen im Hinzufügen und Löschen einer Spalte.If the Subscriber republishes data, the only supported schema changes are adding and dropping a column. Diese Änderungen sollten auf dem Verleger mithilfe von sp_repladdcolumn (Transact-SQL) und sp_repldropcolumn (Transact-SQL) statt mit der DDL-Syntax ALTER TABLE vorgenommen werden.These changes should be made on the Publisher using sp_repladdcolumn (Transact-SQL) and sp_repldropcolumn (Transact-SQL) rather than ALTER TABLE DDL syntax.

  • Schemaänderungen werden auf Nicht-SQL-Server-Abonnenten nicht repliziert.Schema changes are not replicated to non-SQL Server Subscribers.

  • Von Nicht-SQL ServerSQL Server -Verlegern werden keine Schemaänderungen weitergegeben.Schema changes are not propagated from non-SQL ServerSQL Server Publishers.

  • Sie können indizierte Sichten, die als Tabellen repliziert werden, nicht ändern.You cannot alter indexed views that are replicated as tables. Indizierte Sichten, die als indizierte Sichten repliziert werden, können geändert werden. Durch die Änderung sind sie jedoch keine indizierten Sichten mehr, sondern werden zu herkömmlichen Sichten.Indexed views that are replicated as indexed views can be altered, but altering them will cause them to become regular views, rather than indexed views.

  • Wenn die Veröffentlichung mit sofort aktualisierbaren Abonnements oder mit Abonnements mit verzögertem Aktualisieren über eine Warteschlange unterstützt, muss das System in einen inaktiven Status versetzt werden, bevor Schemaänderungen vorgenommen werden: jede Aktivität an der veröffentlichten Tabelle muss auf dem Verleger und den Abonnenten angehalten und ausstehende Datenänderungen müssen an alle Knoten weitergegeben werden.If the publication supports immediate updating or queued updating subscriptions, the system must be quiesced before making schema changes: all activity on the published table must be stopped at the Publisher and Subscribers, and pending data changes must be propagated to all nodes. Nach der Weitergabe der Schemaänderungen an alle Knoten können die Aktivitäten an den veröffentlichten Tabellen fortgesetzt werden.After the schema changes have propagated to all nodes, activity can resume on the published tables.

  • Befindet sich die Veröffentlichung in einer Peer-zu-Peer-Topologie, muss das System in einen inaktiven Status versetzt werden, bevor Schemaänderungen vorgenommen werden.If the publication is in a peer-to-peer topology, the system must be quiesced before making schema changes. Weitere Informationen finden Sie unter Versetzen einer Replikationstopologie in einen inaktiven Status (Replikationsprogrammierung mit Transact-SQL).For more information, see Quiesce a Replication Topology (Replication Transact-SQL Programming).

  • Wenn Sie einer Tabelle eine timestamp-Spalte hinzufügen und diese wird einer binary(8)-Spalte zugeordnet, dann wird der Artikel für alle aktiven Abonnements erneut initialisiert.Adding a timestamp column to a table and mapping the timestamp to binary(8) causes the article to be reinitialized for all active subscriptions.

MergereplikationMerge Replication

  • Wie Mergereplikation Schemaänderungen behandeln, hängt ab vom Veröffentlichungskompatibilitätsgrad, und ob die Momentaufnahme auf einheitlichen Modus (Standard) oder auf Zeichenmodus eingestellt ist:How merge replication handles schema changes is determined by the publication compatibility level, and whether the snapshot is set to native mode (default) or character mode:

    • Zum Replizieren von Schemaänderungen muss die Veröffentlichung mindestens einen Kompatibilitätsgrad von 90RTM aufweisen.To replicate schema changes, the compatibility level of the publication must be at least 90RTM. Wenn Abonnenten frühere Versionen von SQL ServerSQL Server ausführen oder der Kompatibilitätsgrad niedriger als 90RTM ist, können Sie sp_repladdcolumn (Transact-SQL) und sp_repldropcolumn (Transact-SQL) zum Hinzufügen und Löschen von Spalten verwenden.If Subscribers are running previous versions of SQL ServerSQL Server or the compatibility level is less than 90RTM you can use sp_repladdcolumn (Transact-SQL) and sp_repldropcolumn (Transact-SQL) to add and drop columns. Allerdings sind diese Prozeduren veraltet.However, these procedures are deprecated.

    • Wenn Sie versuchen, zu einem Artikel eine Spalte mit einem Datentyp hinzuzufügen, der in SQL Server 2008SQL Server 2008eingeführt wurde, verhält sich SQL ServerSQL Server wie folgt:If you try to add to an existing article a column with a data type that was introduced in SQL Server 2008SQL Server 2008, SQL ServerSQL Server has the following behavior:

      100RTM, systemeigene Momentaufnahme100RTM, native snapshot 100RTM, Momentaufnahme im Zeichenmodus100RTM, character snapshot Alle übrigen KompatibilitätsgradeAll other compatibility levels
      hierarchyidhierarchyid Änderung zulassenAllow change Änderung blockierenBlock change Änderung blockierenBlock change
      geography und geometrygeography and geometry Änderung zulassenAllow change Änderung zulassen*Allow change* Änderung blockierenBlock change
      Filestreamfilestream Änderung zulassenAllow change Änderung blockierenBlock change Änderung blockierenBlock change
      date, time, datetime2und datetimeoffsetdate, time, datetime2, and datetimeoffset Änderung zulassenAllow change Änderung zulassen*Allow change* Änderung blockierenBlock change

      *Abonnenten von SQL Server Compact konvertieren diese Datentypen beim Abonnenten.*SQL Server Compact Subscribers convert these data types at the Subscriber.

  • Falls beim Anwenden einer Schemaänderung ein Fehler auftritt, schlägt die Synchronisierung fehl, und das Abonnement muss erneut initialisiert werden. (Ein Fehler kann z. B. auftreten, wenn ein hinzugefügter Fremdschlüssel auf eine Tabelle verweist, die auf dem Abonnenten nicht verfügbar ist.)If an error occurs when applying a schema change (such as an error resulting from adding a foreign key that references a table not available at the Subscriber), synchronization fails and the subscription must be reinitialized.

  • Wird eine Schemaänderung an einer Spalte vorgenommen, die von einem Joinfilter oder parametrisierten Filter betroffen ist, müssen Sie alle Abonnements erneut initialisieren und die Momentaufnahme neu generieren.If a schema change is made on a column involved in a join filter or parameterized filter, you must reinitialize all subscriptions and regenerate the snapshot.

  • Die Mergereplikation stellt gespeicherte Prozeduren bereit, mit denen Schemaänderungen bei der Problembehandlung ausgelassen werden können.Merge replication provides stored procedures to skip schema changes during troubleshooting. Weitere Informationen finden Sie unter sp_markpendingschemachange (Transact-SQL) und sp_enumeratependingschemachanges (Transact-SQL).For more information, see sp_markpendingschemachange (Transact-SQL) and sp_enumeratependingschemachanges (Transact-SQL).

Weitere InformationenSee Also

ALTER TABLE (Transact-SQL) ALTER TABLE (Transact-SQL)
ALTER VIEW (Transact-SQL) ALTER VIEW (Transact-SQL)
ALTER PROCEDURE (Transact-SQL) ALTER PROCEDURE (Transact-SQL)
ALTER FUNCTION (Transact-SQL) ALTER FUNCTION (Transact-SQL)
ALTER TRIGGER (Transact-SQL) ALTER TRIGGER (Transact-SQL)
Veröffentlichen von Daten und Datenbankobjekten Publish Data and Database Objects
Erneutes Generieren von Transaktionsprozeduren zur Erfassung von SchemaänderungenRegenerate Custom Transactional Procedures to Reflect Schema Changes