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 Veröffentlichungsdatenbank ausgeführt.

Wichtiger HinweisWichtig

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. Diese Prozedur sollte nicht für Spalten mit Datentypen verwendet werden, die in SQL Server 2005 oder SQL Server 2008 eingeführt wurden.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_repldropcolumn [ @source_object = ] 'source_object', [ @column = ] 'column' 
    [ , [ @from_agent = ] from_agent ] 
    [ , [ @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.

  • [ @from_agent= ] from_agent
    Gibt an, ob die gespeicherte Prozedur von einem Replikations-Agent ausgeführt wird. from_agent ist vom Datentyp int und hat den Standardwert 0. Der Wert 1 wird verwendet, wenn die gespeicherte Prozedur von einem Replikations-Agent ausgeführt wird. In allen anderen Fällen muss der Standardwert 0 verwendet werden.

  • [ @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 Veröffentlichungsdatenbanken.

sp_repladdcolumn ist für die Weitergabe von DDL-Änderungen von Wiederveröffentlichungsabonnenten, die eine frühere Version von Microsoft SQL Server 2000-Abonnenten ausführen, weiterhin erforderlich.

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 Veröffentlichung 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.

Wichtiger HinweisWichtig

Nach der Ausführung von sp_repldropcolumn sollte eine Sicherung der Veröffentlichungsdatenbank ausgeführt werden.Wenn dies versäumt wird, kann es zu einem Mergefehler führen, nachdem die Veröffentlichungsdatenbank 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 Veröffentlichungsdatenbank können sp_repldropcolumn ausführen.