Freigeben über


sp_repladdcolumn (Transact-SQL)

Gilt für: SQL Server Azure SQL Managed Instance

Fügt einem vorhandenen veröffentlichten Tabellenartikel eine Spalte hinzu. Dadurch kann die neue Spalte zu allen Verlegern hinzugefügt werden, die diese Tabelle veröffentlichen, oder die Spalte kann ausschließlich zu einer bestimmten Veröffentlichung hinzugefügt werden, die die Tabelle veröffentlicht. Diese gespeicherte Prozedur wird im Publisher in der Publikationsdatenbank ausgeführt.

Wichtig

Diese gespeicherte Prozedur ist veraltet und wird aus Gründen der Abwärtskompatibilität unterstützt. Sie sollte nur mit SQL Server 2000 (8.x)-Herausgebern und SQL Server 2000 (8.x) erneuten Veröffentlichungen von Abonnenten verwendet werden. Dieses Verfahren sollte nicht für Spalten mit Datentypen verwendet werden, die in SQL Server 2005 (9.x) und höheren Versionen eingeführt wurden.

Transact-SQL-Syntaxkonventionen

Syntax

sp_repladdcolumn
    [ @source_object = ] N'source_object'
    , [ @column = ] N'column'
    , [ @typetext = ] N'typetext'
    [ , [ @publication_to_add = ] N'publication_to_add' ]
    [ , [ @from_agent = ] from_agent ]
    [ , [ @schema_change_script = ] N'schema_change_script' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

Argumente

[ @source_object = ] N'source_object'

Der Name des Tabellenartikels, der die hinzuzufügende neue Spalte enthält. @source_object ist nvarchar(358), ohne Standard.

[ @column = ] N'column'

Der Name der Spalte in der Tabelle, die für die Replikation hinzugefügt werden soll. @column ist "sysname" ohne Standard.

[ @typetext = ] N'typetext'

Die Definition der hinzugefügten Spalte. @typetext ist nvarchar(3000), ohne Standard. Wenn beispielsweise die Spalte order_filled hinzugefügt wird und es sich um ein einzelnes Zeichenfeld und nicht NULLum einen Standardwert von N handelt, wäre order_filled der Spaltenparameter , während die Definition der Spalte, zeichen(1) NOT NULL CONSTRAINT constraint_name DEFAULT "N" der @typetext Parameterwert wäre.

[ @publication_to_add = ] N'publication_to_add'

Der Name der Publikation, der die neue Spalte hinzugefügt wird. @publication_to_add ist nvarchar(4000), mit einem Standardwert von all. Wenn all, dann sind alle Publikationen, die diese Tabelle enthalten, betroffen. Wenn @publication_to_add angegeben ist, wird nur diese Publikation die neue Spalte hinzugefügt.

[ @from_agent = ] from_agent

Gibt an, ob die gespeicherte Prozedur von einem Replikations-Agent ausgeführt wird. @from_agent ist int, mit einem Standardwert von 0. Ein Wert wird 1 verwendet, wenn diese gespeicherte Prozedur von einem Replikations-Agent ausgeführt wird, und in jedem anderen Fall sollte der Standardwert 0 verwendet werden.

[ @schema_change_script = ] N'schema_change_script'

Gibt den Namen und Pfad eines SQL Server-Skripts an, das zum Ändern des vom System generierten benutzerdefinierten gespeicherten Prozeduren verwendet wird. @schema_change_script ist nvarchar(4000), mit einem Standardwert von NULL. Mithilfe der Replikation ist es möglich, mindestens eine der bei der Transaktionsreplikation verwendeten Standardprozeduren durch benutzerdefinierte gespeicherte Prozeduren zu ersetzen. @schema_change_script wird ausgeführt, nachdem eine Schemaänderung an einem replizierten Tabellenartikel vorgenommen wurde, und sp_repladdcolumnkann wie folgt verwendet werden:

  • Wenn benutzerdefinierte gespeicherte Prozeduren automatisch neu generiert werden, können @schema_change_script verwendet werden, um diese benutzerdefinierten gespeicherten Prozeduren abzulegen und durch benutzerdefinierte gespeicherte Prozeduren zu ersetzen, die das neue Schema unterstützen.

  • Wenn benutzerdefinierte gespeicherte Prozeduren nicht automatisch neu generiert werden, können @schema_change_script verwendet werden, um diese gespeicherten Prozeduren neu zu generieren oder benutzerdefinierte gespeicherte Prozeduren zu erstellen.

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

Aktiviert oder deaktiviert die Möglichkeit, eine Momentaufnahme für ungültig zu erklären. @force_invalidate_snapshot ist bit, mit einem Standardwert von 1.

  • 1 Gibt an, dass Änderungen am Artikel dazu führen können, dass die Momentaufnahme ungültig ist, und wenn dies der Fall ist, erhält ein Wert der 1 Berechtigung für die neue Momentaufnahme.

  • 0 Gibt an, dass Änderungen am Artikel nicht dazu führen, dass die Momentaufnahme ungültig ist.

[ @force_reinit_subscription = ] force_reinit_subscription

Aktiviert oder deaktiviert die Möglichkeit, das Abonnement erneut initialisiert zu haben. @force_reinit_subscription ist bit, mit einem Standardwert von 0.

  • 0 Gibt an, dass Änderungen am Artikel nicht dazu führen, dass das Abonnement erneut initialisiert wird.

  • 1 Gibt an, dass Änderungen am Artikel dazu führen können, dass das Abonnement erneut initialisiert wird, und wenn dies der Fall ist, erhält ein Wert der 1 Berechtigung für die Erneute Initialisierung des Abonnements.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Berechtigungen

Nur Mitglieder der festen Serverrolle sysadmin und die db_owner feste Datenbankrolle können ausgeführt werden sp_repladdcolumn.