Freigeben über


sp_repldropcolumn (Transact-SQL)

Löscht eine Spalte aus einem vorhandenen Tabellenartikel, der veröffentlicht worden ist. Diese gespeicherte Prozedur wird beim Verleger mit der Publikationsdatenbank ausgeführt.

ms190489.note(de-de,SQL.90).gifWichtig:
Diese gespeicherte Prozedur wurde als veraltet markiert und wird hauptsächlich aus Gründen der Abwärtskompatibilität unterstützt. Sie sollte nur mit Microsoft SQL Server 2000-Verlegern und SQL Server 2000-Wiederveröffentlichungsabonnenten verwendet werden.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_repldropcolumn [ @source_object = ] 'source_object', [ @column = ] 'column' 
    [ , [ @schema_change_script = ] 'schema_change_script' ] 
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ] 
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ] 

Argumente

  • [ @source_object = ] 'source_object'
    Der Name des Tabellenartikels, der die zu löschende Spalte enthält. source_object ist vom Datentyp nvarchar(258) und hat keinen Standardwert.
  • [ @column = ] 'column'
    Der Name der Spalte in der Tabelle, die gelöscht werden soll. column ist vom Datentyp sysname und hat keinen Standardwert.
  • [ @schema_change_script = ] 'schema_change_script'
    Gibt den Namen und Pfad eines SQL Server-Skripts an, das zum Ändern der systemgenerierten benutzerdefinierten gespeicherten Prozeduren verwendet wird. schema_change_script ist vom Datentyp nvarchar(4000) und hat den Standardwert NULL. Bei der Replikation können Standardprozeduren, die für die Transaktionsreplikation verwendet werden, durch von Benutzern erstellte benutzerdefinierte gespeicherte Prozeduren ersetzt werden. schema_change_script wird ausgeführt, nachdem mithilfe von sp_repldropcolumn eine Schemaänderung an einem replizierten Tabellenartikel vorgenommen wurde. Das Skript kann für Folgendes verwendet werden:

    • Wenn benutzerdefinierte gespeicherte Prozeduren automatisch erneut generiert werden, können mithilfe von schema_change_script diese benutzerdefinierten gespeicherten Prozeduren gelöscht und durch von Benutzern erstellte benutzerdefinierte gespeicherte Prozeduren ersetzt werden, die das neue Schema unterstützen.
    • Wenn benutzerdefinierte gespeicherte Prozeduren nicht automatisch erneut generiert werden, können mithilfe von schema_change_script diese benutzerdefinierten gespeicherten Prozeduren erneut generiert oder benutzerdefinierte gespeicherte Prozeduren erstellt werden.
  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    Aktiviert oder deaktiviert die Möglichkeit, einen Snapshot für ungültig zu erklären. force_invalidate_snapshot ist vom Datentyp bit; der Standardwert ist 1.

    Der Wert 1 gibt an, dass Änderungen am Artikel bewirken können, dass der Snapshot ungültig wird. Wenn dies zutrifft, wird mit dem Wert 1 die Berechtigung für das Auftreten des neuen Snapshots erteilt.

    Der Wert 0 gibt an, dass Änderungen am Artikel nicht bewirken, dass der Snapshot ungültig wird.

  • [ @force_reinit_subscription = ] force_reinit_subscription
    Aktiviert oder deaktiviert die Möglichkeit, ein Abonnement erneut zu initialisieren. force_reinit_subscription ist vom Datentyp bit und hat den Standardwert 0.

    Der Wert 0 gibt an, dass Änderungen am Artikel nicht bewirken, dass das Abonnement erneut initialisiert wird.

    Der Wert 1 gibt an, dass Änderungen am Artikel bewirken können, dass das Abonnement erneut initialisiert wird. Wenn dies zutrifft, wird mit dem Wert 1 die Berechtigung für das Auftreten der erneuten Initialisierung des Abonnements erteilt.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Hinweise

sp_repldropcolumn wurde als veraltet markiert. Das Entfernen einer Spalte aus einem replizierten Tabellenartikel sollte durch Ausführen von DDL-Befehlen (Data Definition Language) auf der veröffentlichten Tabelle erfolgen. Diese DDL-Befehle werden bei der Replikation automatisch repliziert, sofern die DDL-Replikation aktiviert ist. Weitere Informationen finden Sie unter Vornehmen von Schemaänderungen in Publikationsdatenbanken.

sp_repladdcolumn wird weiterhin benötigt, wenn DDL-Änderungen von Wiederveröffentlichungsabonnenten weitergegeben werden, die auf einer früheren Version von Microsoft SQL Server 2000-Abonnenten ausgeführt werden.

sp_repldropcolumn wird bei allen Replikationstypen verwendet.

Beim Verwenden von sp_repldropcolumn gilt Folgendes: Wenn eine Schemaänderung an einem Artikel vorgenommen wird, der zu einer Publikation gehört, die ein DTS-Paket (Data Transformation Services) verwendet, wird die Schemaänderung nicht an den Abonnenten weitergegeben. Die benutzerdefinierten Prozeduren für INSERT/UPDATE/DELETE werden auf dem Abonnenten nicht erneut generiert. Der Benutzer muss das DTS-Paket manuell erneut generieren und die entsprechende Schemaänderung auf den Abonnenten vornehmen. Wenn die Schemaaktualisierung nicht angewendet wird, erzeugt der Verteilungs-Agent möglicherweise beim Anwenden der nachfolgenden Änderungen einen Fehler. Bevor Sie eine Schemaänderung durchführen, stellen Sie sicher, dass keine ausstehenden Transaktionen zum Übermitteln vorhanden sind.

ms190489.note(de-de,SQL.90).gifWichtig:
Nach der Ausführung von sp_repldropcolumn sollte eine Sicherung der Publikationsdatenbank ausgeführt werden. Wenn dies versäumt wird, kann es zu einem Mergefehler führen, nachdem die Publikationsdatenbank wiederhergestellt wurde.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin auf dem Verleger oder Mitglieder der festen Datenbankrollen db_owner oder db_ddladmin für die Publikationsdatenbank können sp_repldropcolumn ausführen.

Siehe auch

Verweis

Gespeicherte Systemprozeduren (Transact-SQL)

Andere Ressourcen

Als veraltet markierte Features der SQL Server 2005-Replikation

Hilfe und Informationen

Informationsquellen für SQL Server 2005